Re: [PATCH net] macmace: Set platform device coherent_dma_mask

From: Finn Thain
Date: Wed May 09 2018 - 21:25:35 EST

On Thu, 3 May 2018, Christoph Hellwig wrote:

> On Thu, May 03, 2018 at 10:46:56AM +0200, Geert Uytterhoeven wrote:
> > Perhaps you can add a new helper
> > (platform_device_register_simple_dma()?) that takes the DMA mask, too?
> > With people setting the mask to kill the WARNING splat, this may
> > become more common.
> >
> > struct platform_device_info already has a dma_mask field, but
> > platform_device_register_resndata() explicitly sets it to zero.
> Yes, that would be useful. The other assumption could be that platform
> devices always allow an all-0xff dma mask.

Could that have unintended side effects? The mask is presently unset by
default, and my worry would be that changing it may cause some drivers to
behave differently.

A quick grep turns up this in drivers/spi/spi-au1550.c for example,

if (pdev->dev.dma_mask == NULL)
dev_warn(&pdev->dev, "no dma mask\n");
hw->usedma = 1;

Also, if is to get a default value, shouldn't it use the
same default as dma_get_mask, to avoid unintended side effects?

static inline u64 dma_get_mask(struct device *dev)
if (dev && dev->dma_mask && *dev->dma_mask)
return *dev->dma_mask;
return DMA_BIT_MASK(32);