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

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

 



Hi!

Other responsibilities has been holding back the Linux commitments.

Thank you for reminding me! I'll get to it!

Best regards,

Andreas Larsson
Software Engineer
Aeroflex Gaisler AB
Aeroflex Microelectronic Solutions – HiRel
Kungsgatan 12
SE-411 19 Gothenburg, Sweden
Phone: +46 31 7758669
andreas@xxxxxxxxxxx
www.Aeroflex.com/Gaisler

On 2014-03-27 14:52, Dan Carpenter wrote:
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