summaryrefslogtreecommitdiff
path: root/drivers/staging/emxx_udc
diff options
context:
space:
mode:
authorTapasweni Pathak <tapaswenipathak@gmail.com>2015-02-20 18:43:53 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-02-24 15:28:35 -0800
commit4a0721bf84da588bec013220f74563add71c0bbe (patch)
tree46e0fb3e449306a1079daae6f4e6eda00981a6ce /drivers/staging/emxx_udc
parent371ec40392e2a774f4b6a637c30bf0d010607578 (diff)
staging: emxx_udc: Replace GFP_KERNEL with GFP_ATOMIC
To avoid deadlock, do not call blocking functions with spinlocks held. Replace GFP_KERNEL with GFP_ATOMIC, as the latter will fail if the pile doesn't have enough free pages but will not sleep and hence deadlock can be avoided. Found by Coccinelle. Signed-off-by: Tapasweni Pathak <tapaswenipathak@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/emxx_udc')
-rw-r--r--drivers/staging/emxx_udc/emxx_udc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c
index 4be646ce8a12..6c1de2770e6a 100644
--- a/drivers/staging/emxx_udc/emxx_udc.c
+++ b/drivers/staging/emxx_udc/emxx_udc.c
@@ -2794,7 +2794,7 @@ static int nbu2ss_ep_queue(
if (ep->virt_buf == NULL)
ep->virt_buf = (u8 *)dma_alloc_coherent(
NULL, PAGE_SIZE,
- &ep->phys_buf, GFP_KERNEL | GFP_DMA);
+ &ep->phys_buf, GFP_ATOMIC | GFP_DMA);
if (ep->epnum > 0) {
if (ep->direct == USB_DIR_IN)
memcpy(ep->virt_buf, req->req.buf,