Messages in this thread | | | From | "Michael Kelley (LINUX)" <> | Subject | RE: [PATCH 2/4 RESEND] dma-mapping: Add wrapper function to set dma_coherent | Date | Thu, 17 Mar 2022 19:13:05 +0000 |
| |
From: Robin Murphy <robin.murphy@arm.com> Sent: Thursday, March 17, 2022 10:20 AM > > On 2022-03-17 16:25, Michael Kelley via iommu wrote: > > Add a wrapper function to set dma_coherent, avoiding the need for > > complex #ifdef's when setting it in architecture independent code. > > No. It might happen to work out on the architectures you're looking at, > but if Hyper-V were ever to support, say, AArch32 VMs you might see the > problem. arch_setup_dma_ops() is the tool for this job. >
OK. There's currently no vIOMMU in a Hyper-V guest, so presumably the code would call arch_setup_dma_ops() with the dma_base, size, and iommu parameters set to 0 and NULL. This call can then be used in Patch 3 instead of acpi_dma_configure(), and in the Patch 4 hv_dma_configure() function as you suggested. arch_setup_dma_ops() is not exported, so I'd need to wrap it in a Hyper-V specific function in built-in code that is exported.
But at some point in the future if there's a vIOMMU in Hyper-V guests, this approach will need some rework.
Does that make sense? Thanks for your input and suggestions ...
Michael
| |