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