From f46121f1ca8ccc22b6ba8cf1e0f3d89cf2da2ec3 Mon Sep 17 00:00:00 2001 From: Sarah Sharp Date: Mon, 27 Jul 2009 12:03:23 -0700 Subject: [PATCH] --- yaml --- r: 155955 b: refs/heads/master c: b11069f5f6ce6e359f853e908b0917303fcdec8f h: refs/heads/master i: 155953: 6ec3dcc8c18f9e3d5aaba019bd59fe99df468017 155951: 0f0e3ed41ffe3224020a6d28272ce6294c71ab93 v: v3 --- [refs] | 2 +- trunk/drivers/usb/host/xhci-hcd.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f427a922a30b..4e3c4ab0a684 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a1587d97ce3e53816c88b513a2038f6c5e5babd7 +refs/heads/master: b11069f5f6ce6e359f853e908b0917303fcdec8f diff --git a/trunk/drivers/usb/host/xhci-hcd.c b/trunk/drivers/usb/host/xhci-hcd.c index 1c5901ad6eb8..ff99365cae42 100644 --- a/trunk/drivers/usb/host/xhci-hcd.c +++ b/trunk/drivers/usb/host/xhci-hcd.c @@ -601,10 +601,13 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags) goto exit; } if (usb_endpoint_xfer_control(&urb->ep->desc)) - ret = xhci_queue_ctrl_tx(xhci, mem_flags, urb, + /* We have a spinlock and interrupts disabled, so we must pass + * atomic context to this function, which may allocate memory. + */ + ret = xhci_queue_ctrl_tx(xhci, GFP_ATOMIC, urb, slot_id, ep_index); else if (usb_endpoint_xfer_bulk(&urb->ep->desc)) - ret = xhci_queue_bulk_tx(xhci, mem_flags, urb, + ret = xhci_queue_bulk_tx(xhci, GFP_ATOMIC, urb, slot_id, ep_index); else ret = -EINVAL;