Date: Wed, 9 Feb 2011 14:26:55 -0500 From: Jung-uk Kim <jkim@FreeBSD.org> To: freebsd-emulation@FreeBSD.org Subject: Re: virtualbox-ose-kmod breakage after svn r218425 Message-ID: <201102091426.57152.jkim@FreeBSD.org> In-Reply-To: <4D52E51F.8080304@protected-networks.net> References: <4D52E45E.4040505@protected-networks.net> <4D52E51F.8080304@protected-networks.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--Boundary-00=_BquUNeUXVU/HjRl Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Wednesday 09 February 2011 02:03 pm, Michael Butler wrote: > On 02/09/11 14:00, Michael Butler wrote: > > Attached is a patch required for vboxdrv.ko to load after the > > (public) disappearance of uio_yield. > > > > Presumably, this will need to be applied to the other branches at > > bluelife.at > > > > imb > > Mailman ate my homework! > > *** ./src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c~ Wed > Dec 1 12:09:43 2010 > --- ./src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c Wed > Feb 9 13:44:28 2011 > *************** > *** 101,107 **** > --- 101,111 ---- > > RTDECL(bool) RTThreadYield(void) > { > + #if (__FreeBSD_version >= 900032) > + kern_yield(curthread->td_user_pri); > + #else > uio_yield(); > + #endif > return false; /** @todo figure this one ... */ > } Actually I did the same thing last night. Please see the attachment. Jung-uk Kim --Boundary-00=_BquUNeUXVU/HjRl Content-Type: text/plain; charset="iso-8859-1"; name="patch-uio_yield" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="patch-uio_yield" --- src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2010-12-01 12:09:43.000000000 -0500 +++ src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h 2011-02-08 18:19:00.000000000 -0500 @@ -112,4 +112,13 @@ # define USE_KMEM_ALLOC_PROT #endif +/** + * Check whether we can use uio_yield. + */ +#if __FreeBSD_version >= 900032 +# define UIO_YIELD() kern_yield(curthread->td_user_pri) +#else +# define UIO_YIELD() uio_yield() +#endif + #endif --- src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c.orig 2010-12-01 12:09:43.000000000 -0500 +++ src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c 2011-02-08 18:19:00.000000000 -0500 @@ -101,7 +101,7 @@ RTDECL(bool) RTThreadYield(void) { - uio_yield(); + UIO_YIELD(); return false; /** @todo figure this one ... */ } --Boundary-00=_BquUNeUXVU/HjRl--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102091426.57152.jkim>