Re: [PATCH] staging: emxx_udc: Fix passing of NULL to dma_alloc_coherent()

From: Dan Carpenter
Date: Tue Aug 25 2020 - 03:38:09 EST


On Mon, Aug 24, 2020 at 04:57:12PM +0100, Alex Dewar wrote:
> 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.

I think passing NULL was always wrong, but it used to not cause an Oops.
This was changed a year or two ago.

> >
> > Build-tested on x86 only.
> >
> > Fixes: 33aa8d45a4fe ("staging: emxx_udc: Add Emma Mobile USB Gadget driver")
> > Signed-off-by: Alex Dewar <alex.dewar90@xxxxxxxxx>
> > ---
> >
> > 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@xxxxxxxxxx>
>

I don't know which dev pointer we're supposed to pass... It would be
good to find someone to test the patch but if not then applying your
patch is reasonable.

But could you search through the file and update the rest as well.
The dma_free_coherent() needs to be updated and there was a second
dma_alloc_coherent() in the bug report.

regards,
dan carpenter