summaryrefslogtreecommitdiff
path: root/drivers/s390
diff options
context:
space:
mode:
authorNiklas Schnelle <schnelle@linux.ibm.com>2021-11-25 16:46:00 +0100
committerHeiko Carstens <hca@linux.ibm.com>2021-12-06 14:42:26 +0100
commit568de506e31749ae9140c1a804f3b1d1ab47b4c2 (patch)
treeb8b530d2e892d9e7c83c48357c66129259b831f7 /drivers/s390
parent4e4dc65ab578c962ea898d475c0418ea29cc6b2f (diff)
s390/pci: use physical addresses in DMA tables
The entries in the DMA translation tables for our IOMMU must specify physical addresses of either the next level table or the final page to be mapped for DMA. Currently however the code simply passes the virtual addresses of both. On the other hand we still need to walk the tables via their virtual addresses so we need to do a phys_to_virt() when setting the entries and a virt_to_phys() when getting them. Similarly when passing the I/O translation anchor to the hardware we must also specify its physical address. As the DMA and IOMMU APIs we are implementing already use the correct phys_addr_t type for the address to be mapped let's also thread this through instead of treating it as just an unsigned long. Note: this currently doesn't fix a real bug, since virtual addresses are indentical to physical ones. Reviewed-by: Pierre Morel <pmorel@linux.ibm.com> Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'drivers/s390')
0 files changed, 0 insertions, 0 deletions