Commit cc34073c authored by Alex Dewar's avatar Alex Dewar Committed by Greg Kroah-Hartman

staging: emxx_udc: Fix passing of NULL to dma_alloc_coherent()

In nbu2ss_eq_queue() memory is allocated with dma_alloc_coherent(),
though, strangely, NULL is passed as the struct device* argument. Pass
the UDC's device instead. Fix up the corresponding call to
dma_free_coherent() in the same way.

Build-tested on x86 only.

Fixes: 33aa8d45 ("staging: emxx_udc: Add Emma Mobile USB Gadget driver")
Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarAlex Dewar <alex.dewar90@gmail.com>
Link: https://lore.kernel.org/r/20200825091928.55794-1-alex.dewar90@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9289cdf3
...@@ -2593,7 +2593,7 @@ static int nbu2ss_ep_queue(struct usb_ep *_ep, ...@@ -2593,7 +2593,7 @@ static int nbu2ss_ep_queue(struct usb_ep *_ep,
if (req->unaligned) { if (req->unaligned) {
if (!ep->virt_buf) if (!ep->virt_buf)
ep->virt_buf = dma_alloc_coherent(NULL, PAGE_SIZE, ep->virt_buf = dma_alloc_coherent(udc->dev, PAGE_SIZE,
&ep->phys_buf, &ep->phys_buf,
GFP_ATOMIC | GFP_DMA); GFP_ATOMIC | GFP_DMA);
if (ep->epnum > 0) { if (ep->epnum > 0) {
...@@ -3148,7 +3148,7 @@ static int nbu2ss_drv_remove(struct platform_device *pdev) ...@@ -3148,7 +3148,7 @@ static int nbu2ss_drv_remove(struct platform_device *pdev)
for (i = 0; i < NUM_ENDPOINTS; i++) { for (i = 0; i < NUM_ENDPOINTS; i++) {
ep = &udc->ep[i]; ep = &udc->ep[i];
if (ep->virt_buf) if (ep->virt_buf)
dma_free_coherent(NULL, PAGE_SIZE, (void *)ep->virt_buf, dma_free_coherent(udc->dev, PAGE_SIZE, (void *)ep->virt_buf,
ep->phys_buf); ep->phys_buf);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment