Hi Arnd, On Mon, Jul 10, 2017 at 5:14 PM, Arnd Bergmann <a...@arndb.de> wrote: > Geert Uytterhoeven ran into a build error without CONFIG_HAS_DMA, > as a result of the driver calling set_dma_ops(). While we can > fix the build error in the dma-mapping implementation, there is > another problem in this driver: > > The configuration for the DMA is done by the platform code, > looking up information about the system from the device tree. > This copies the information only in an incomplete way, setting > the dma_map_ops and forcing a specific mask, but ignoring all > settings regarding IOMMU, coherence etc. > > A better way to avoid the problem is to only ever pass a device > into the dma_mapping implementation that has been setup by the > platform code. In this case, that is the parent device, so we > can get that pointer at probe time. Fortunately, we already have > a pointer in the device specific structure for that, so we only > need to modify that.
Thank you, that looks like a much better solution! > Fixes: fb52728a9294 ("dpaa_eth: reuse the dma_ops provided by the FMan MAC > device") > Signed-off-by: Arnd Bergmann <a...@arndb.de> Acked-by: Geert Uytterhoeven <ge...@linux-m68k.org> > Not tested, please see if this works before applying! Indeed, please test first. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds