As the dma_alloc_coherent() may return NULL, the return value needs to be checked to avoid NULL poineter dereference. Fixes: 33aa8d45a4fe ("staging: emxx_udc: Add Emma Mobile USB Gadget driver") Signed-off-by: Yuan Can <yuancan@xxxxxxxxxx> --- drivers/staging/emxx_udc/emxx_udc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index b6abd3770e81..3c0c9c5eb733 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -2594,6 +2594,10 @@ static int nbu2ss_ep_queue(struct usb_ep *_ep, ep->virt_buf = dma_alloc_coherent(udc->dev, PAGE_SIZE, &ep->phys_buf, GFP_ATOMIC | GFP_DMA); + if (!ep->virt_buf) { + spin_unlock_irqrestore(&udc->lock, flags); + return -ENOMEM; + } if (ep->epnum > 0) { if (ep->direct == USB_DIR_IN) memcpy(ep->virt_buf, req->req.buf, -- 2.17.1