[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200824155712.4kgxwqiufm2ieboz@medion>
Date: Mon, 24 Aug 2020 16:57:12 +0100
From: Alex Dewar <alex.dewar90@...il.com>
To: Alex Dewar <alex.dewar90@...il.com>
Cc: dan.carpenter@...cle.com,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Javier F. Arias" <jarias.linux@...il.com>,
YueHaibing <yuehaibing@...wei.com>,
"Frank A. Cancio Bello" <frank@...eralsoftwareinc.com>,
Saiyam Doshi <saiyamdoshi.in@...il.com>,
Magnus Damm <damm+renesas@...nsource.se>,
Simon Horman <horms+renesas@...ge.net.au>,
devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] staging: emxx_udc: Fix passing of NULL to
dma_alloc_coherent()
On Mon, Aug 24, 2020 at 04:19:17PM +0100, Alex Dewar wrote:
> 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.
>
> Build-tested on x86 only.
>
> Fixes: 33aa8d45a4fe ("staging: emxx_udc: Add Emma Mobile USB Gadget driver")
> Signed-off-by: Alex Dewar <alex.dewar90@...il.com>
> ---
>
> So I *think* this is the right fix, but I don't have the hardware so
> I've only been able to build-test it. My worry is that I could be
> passing in the wrong struct device* here, which would squelch the
> warning without fixing the breakage.
>
> Can someone cleverer than me tell me if this makes sense?
>
> - Alex
PS -- I meant to put an RFC in the subject line and an extra tag:
Reported-by: Dan Carpenter <dan.carpenter@...cle.com>
> ---
> drivers/staging/emxx_udc/emxx_udc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c
> index 03929b9d3a8b..09e91449c08c 100644
> --- a/drivers/staging/emxx_udc/emxx_udc.c
> +++ b/drivers/staging/emxx_udc/emxx_udc.c
> @@ -2593,7 +2593,7 @@ static int nbu2ss_ep_queue(struct usb_ep *_ep,
>
> if (req->unaligned) {
> 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,
> GFP_ATOMIC | GFP_DMA);
> if (ep->epnum > 0) {
> --
> 2.28.0
>
Powered by blists - more mailing lists