Re: Sleeping in illegal context with 2.5.65-mm2

Greg KH
2003-03-20T05:07:02Z

On Wed, Mar 19, 2003 at 11:03:51PM -0600, Kai Germaschewski wrote:
> On Wed, 19 Mar 2003, Greg KH wrote:
>
> > > Debug: sleeping function called from illegal context at mm/slab.c:1723
> > > Call Trace:
> > > [<c0119d92>] __might_sleep+0x5f/0x65
> > > [<c013a097>] kmalloc+0x88/0x8f
> > > [<c0238111>] usb_alloc_urb+0x21/0x51
> > > [<f09180bc>] hci_usb_enable_intr+0x20/0xf8 [hci_usb]
> >
> > The call to usb_alloc_urb() here is being done with the GFP_ATOMIC flag,
> > which is correct. Do we need to fix up the warning message to prevent
> > false positives like this from happening?
>
> Not in my tree: (drivers/bluetooth/hci_sb.c)
>
> if (!(urb = usb_alloc_urb(0, GFP_KERNEL)))
> return -ENOMEM;

Doh, nevermind, I was looking at the wrong function, sorry.

> And the function is called in a write_lock_irqsave(), so the complaint is
> justified.

Max, you should probably fix this up.

> (Also, I think __might_sleep() deliberately doesn't get triggered for
> GFP_ATOMIC already, as you suggested).

Yeah, in digging deeper, it's a smart check, sorry.

thanks,

greg k-h