Re: [PATCH 15/15] dma-mapping: bypass indirect calls for dma-direct

From: Christoph Hellwig
Date: Thu Dec 20 2018 - 11:46:13 EST


On Thu, Dec 20, 2018 at 05:44:18PM +0100, Thierry Reding wrote:
> On Fri, Dec 07, 2018 at 11:07:20AM -0800, Christoph Hellwig wrote:
> [...]
> > diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
> > index 0b18cfbdde95..fc84c81029d9 100644
> > --- a/kernel/dma/mapping.c
> > +++ b/kernel/dma/mapping.c
> [...]
> > @@ -397,9 +404,9 @@ int dma_supported(struct device *dev, u64 mask)
> > {
> > const struct dma_map_ops *ops = get_dma_ops(dev);
> >
> > - if (!ops)
> > - return 0;
> > - if (!ops->dma_supported)
> > + if (dma_is_direct(ops))
> > + return dma_direct_supported(dev, mask);
> > + if (ops->dma_supported)
> > return 1;
> > return ops->dma_supported(dev, mask);
> > }
>
> Hi Christoph,
>
> This hunk causes a crash on boot for me. It looks like a ! got lost in
> the rework here. The following patch fixes the crash for me and restores
> the logic of the op->dma_supported check.
>
> Feel free to squash this patch into the above if you prefer that.

I don't want to rebase, so I'll pick this up ASAP.