Date: Wed, 4 Apr 2007 20:37:32 +0200 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-usb@freebsd.org Cc: Mark Atkinson <atkin901@yahoo.com> Subject: Re: msleep redefined error in hselasky/usb4bsd/ svn patch against -current Message-ID: <200704042037.32793.hselasky@c2i.net> In-Reply-To: <ev0nvi$di4$1@sea.gmane.org> References: <ev0nvi$di4$1@sea.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 04 April 2007 19:41, Mark Atkinson wrote: > I get the following error when trying to compile the proposed usb4bsd stack > against current. > > In file included from /usr/src/sys/dev/usb/ehci.c:67: > /usr/src/sys/dev/usb/usb_port.h:293:1: "msleep" redefined > In file included from /usr/src/sys/dev/usb/ehci.c:58: > /usr/src/sys/sys/systm.h:313:1: this is the location of the previous > definition > *** Error code 1 > > Sure enough, it is intentionally redefined: > > sys/dev/usb/usb_port.h:290-293 > > /* preliminary fix for a bug in msleep on FreeBSD, > * which cannot sleep with Giant: > */ > #define msleep(i,m,p,w,t) msleep(i,(((m) == &Giant) ? NULL : (m)),p,w,t) When I integrate my driver against FreeBSD-7 current, I will add some "#if" statements for those issues. Until further: In /sys/dev/usb/usb_port.h, use the following: /* preliminary fix for a bug in msleep on FreeBSD, * which cannot sleep with Giant: */ #undef msleep #define msleep(i,m,p,w,t) _sleep(i,(((m) == &Giant) ? \ NULL : &(m)->mtx_object),p,w,t) After this patch you have to insert a NULL argument, to all bus_setup_intr() functions you find in the files /sys/dev/usb/*pci.c like shown below ? error = bus_setup_intr(dev, sc->sc_irq_res, INTR_TYPE_TTY, - si_intr, sc, &ih); + NULL, si_intr, sc, &ih); Hope that is not too much patching. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200704042037.32793.hselasky>