Re: [PATCH 5/5] dma-mapping: consolidate dma_set_mask

Christoph Hellwig
2015-08-13T17:58:14Z

On Thu, Aug 13, 2015 at 04:25:05PM +0100, Russell King - ARM Linux wrote:
> On Thu, Aug 13, 2015 at 05:04:08PM +0200, Christoph Hellwig wrote:
> > diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c
> > index 1143c4d..260f52a 100644
> > --- a/arch/arm/common/dmabounce.c
> > +++ b/arch/arm/common/dmabounce.c
> > @@ -440,14 +440,6 @@ static void dmabounce_sync_for_device(struct device *dev,
> > arm_dma_ops.sync_single_for_device(dev, handle, size, dir);
> > }
> >
> > -static int dmabounce_set_mask(struct device *dev, u64 dma_mask)
> > -{
> > - if (dev->archdata.dmabounce)
> > - return 0;
> > -
> > - return arm_dma_ops.set_dma_mask(dev, dma_mask);
>
> Are you sure about this? A user of dmabounce gets to request any mask
> with the original code (even though it was never written back... which
> is a separate bug.) After this, it seems that this will get limited
> by the dma_supported() check. As this old code is about bouncing any
> buffer into DMA-able memory, it doesn't care about the DMA mask.

I think you're right. With the default dma_supported implementation
it would be fine, but ARM uses a custom one. I'll keep the arm
specific dma_set_mask implementation for the next round.