On Mon, Nov 16, 2020 at 01:07:28PM +0000, Alexander Lobakin wrote: > But lots of subsystems like netdev for example uses dev->parent for > DMA operations. I know that their pointers go directly to the > platform/PCI/etc. device, but still. Oh, every drivers is perfectly fine to use ->parent as it suits. The problem is when we have layered architectures, where this pokes a massive hole into the layering. > The only reason behind "fake" DMA devices for rproc is to be able to > reserve DMA memory through the Device Tree exclusively for only one > virtio dev like virtio_console or virtio_rpmsg_bus. That's why > they are present, are coercing DMA caps from physical dev > representor, and why questinable dma_declare_coherent_memory() > is still here and doesn't allow to build rproc core as a module. > I agree that this is not the best model obviously, and we should take > a look at it. As far as I can tell the series from Arnaud does the right thing here.