Re: usb: gadget: Add UDC driver for Aeroflex Gaisler GRUSBDC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This bug is still there in linux-next.  What's the story, Andreas?

regards,
dan carpenter

On Thu, Jan 23, 2014 at 07:19:57PM +0300, Dan Carpenter wrote:
> Hello Andreas Larsson,
> 
> The patch 27e9dcc924e9: "usb: gadget: Add UDC driver for Aeroflex
> Gaisler GRUSBDC" from Dec 23, 2013, leads to the following static
> checker warning:
> 
> 	drivers/usb/gadget/gr_udc.c:1994 gr_ep_init()
> 	error: scheduling with locks held: 'spin_lock:lock'
> 
> drivers/usb/gadget/gr_udc.c
>   1991          INIT_LIST_HEAD(&ep->queue);
>   1992  
>   1993          if (num == 0) {
>   1994                  _req = gr_alloc_request(&ep->ep, GFP_KERNEL);
>                                                          ^^^^^^^^^^
> GFP_ATOMIC?
> 
>   1995                  buf = devm_kzalloc(dev->dev, PAGE_SIZE, GFP_DMA | GFP_KERNEL);
>                                                                 ^^^^^^^^^^^^^^^^^^^^
> This allocation can sleep as well.  We're not allowed to sleep if we're
> holding a spinlock.
> 
>   1996                  if (!_req || !buf) {
>   1997                          /* possible _req freed by gr_probe via gr_remove */
>   1998                          return -ENOMEM;
>   1999                  }
>   2000  
>   2001                  req = container_of(_req, struct gr_request, req);
>   2002                  req->req.buf = buf;
>   2003                  req->req.length = MAX_CTRL_PL_SIZE;
> 
> The call tree is:
>   gr_probe() <- takes the spinlock
>   -> gr_udc_init()
>      -> gr_ep_init()  <-- sleeps
> 
> regards,
> dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux