msleep redefined error in hselasky/usb4bsd/ svn patch against
-current
Hans Petter Selasky
hselasky at c2i.net
Wed Apr 4 18:37:55 UTC 2007
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
More information about the freebsd-usb
mailing list