On 07/15/2010 04:10 AM, Joerg Roedel wrote:
On Wed, Jul 14, 2010 at 04:29:18PM -0500, Anthony Liguori wrote:
On 07/14/2010 03:13 PM, Paul Brook wrote:
Well, ok, the function name needs fixing too. However I think the only thing
missing from the current API is that it does not provide a way to determine
which device is performing the access.
I agree with Paul.
The right approach IMHO is to convert devices to use bus-specific
functions to access memory. The bus specific functions should have a
device argument as the first parameter.
If this means a seperate interface for device dma accesses and not fold
that functionality into the cpu_physical_memory* interface I agree too :-)
No. PCI devices should never call cpu_physical_memory*.
PCI devices should call pci_memory*.
ISA devices should call isa_memory*.
All device memory accesses should go through their respective buses.
There can be multiple IOMMUs at different levels of the device
hierarchy. If you don't provide bus-level memory access functions that
chain through the hierarchy, it's extremely difficult to implement all
the necessary hooks to perform the translations at different places.
Regards,
Anthony Liguori
Joerg
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html