On 06/09/2014 11:32 PM, Dan Williams wrote: > On Mon, Jun 9, 2014 at 9:07 AM, Mathias Nyman > <mathias.nyman@xxxxxxxxxxxxxxx> wrote: >> xhci_stop_device() allocates and issues stop commands for each active endpoint. >> This is done with spinlock held and interrupt disabled so we can't sleep during >> memory allocation. Use GFP_ATOMIC instead >> >> Regressiong from commit ddba5cd0aeff5bbed92ebdf4b1223300b0541e78 >> "xhci: Use command structures when queuing commands on the command ring" >> for 3.16-rc1 >> >> Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx> >> --- >> drivers/usb/host/xhci-hub.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c >> index 6231ce6..0373487 100644 >> --- a/drivers/usb/host/xhci-hub.c >> +++ b/drivers/usb/host/xhci-hub.c >> @@ -287,7 +287,7 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend) >> if (virt_dev->eps[i].ring && virt_dev->eps[i].ring->dequeue) { >> struct xhci_command *command; >> command = xhci_alloc_command(xhci, false, false, >> - GFP_NOIO); >> + GFP_ATOMIC); > > GFP_NOWAIT instead? Do we really need to steal from emergency pools for this? > Sure, makes sense. I'll resend -Mathias -- 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