kernel/drivers/staging/emxx_udc/emxx_udc.c
.. .. @@ -2591,10 +2591,15 @@ 2591 2591 req->unaligned = false; 2592 2592 2593 2593 if (req->unaligned) { 2594 - if (!ep->virt_buf)2594 + if (!ep->virt_buf) {2595 2595 ep->virt_buf = dma_alloc_coherent(udc->dev, PAGE_SIZE, 2596 2596 &ep->phys_buf, 2597 2597 GFP_ATOMIC | GFP_DMA); 2598 + if (!ep->virt_buf) {2599 + spin_unlock_irqrestore(&udc->lock, flags);2600 + return -ENOMEM;2601 + }2602 + }2598 2603 if (ep->epnum > 0) { 2599 2604 if (ep->direct == USB_DIR_IN) 2600 2605 memcpy(ep->virt_buf, req->req.buf,