]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/pseries/iommu: Create huge DMA window if no MMIO32 is present
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Wed, 20 Oct 2021 13:23:15 +0000 (00:23 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 25 Oct 2021 00:41:15 +0000 (11:41 +1100)
commitaf93cecdc085bcf885032fb7b318e44b764c281f
tree54d78d5fcf3058e677841e0a364088b2b12986dd
parentd4bb9c003c1e1a498b09a46766fa2f5b8e2afbcd
powerpc/pseries/iommu: Create huge DMA window if no MMIO32 is present

The iommu_init_table() helper takes an address range to reserve in
the IOMMU table being initialized to exclude MMIO addresses, this is
useful if the window stretches far beyond 4GB (although wastes some TCEs).
At the moment the code searches for such MMIO32 range and fails if none
found which is considered a problem while it really is not: it is actually
better as this says there is no MMIO32 to reserve and we can use
usually wasted TCEs. Furthermore PHYP never actually allows creating
windows starting at busaddress=0 so this MMIO32 range is never useful.

This removes error exit and initializes the table with zero range if
no MMIO32 is detected.

Fixes: e43d34820f5a ("powerpc/pseries/iommu: Make use of DDW for indirect mapping")
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211020132315.2287178-5-aik@ozlabs.ru
arch/powerpc/platforms/pseries/iommu.c