Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70369a11 authored by Yuan Can's avatar Yuan Can Committed by Greg Kroah-Hartman
Browse files

staging: emxx_udc: Add checks for dma_alloc_coherent()



[ Upstream commit f6510a93cfd8c6c79b4dda0f2967cdc6df42eff4 ]

As the dma_alloc_coherent may return NULL, the return value needs to be
checked to avoid NULL poineter dereference.

Signed-off-by: default avatarYuan Can <yuancan@huawei.com>
Reviewed-by: default avatarSimon Horman <horms@verge.net.au>
Link: https://lore.kernel.org/r/20230119083119.16956-1-yuancan@huawei.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 2072ed7c
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -2593,10 +2593,15 @@ static int nbu2ss_ep_queue(struct usb_ep *_ep,
		req->unaligned = false;

	if (req->unaligned) {
		if (!ep->virt_buf)
		if (!ep->virt_buf) {
			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,