On 12/9/24 2:25 PM, Matthew Rosato wrote:
> The series extends the maximum table size allowed by s390-iommu by
> increasing the number of table regions supported. It also adds logic to
> construct the table use the minimum number of regions based upon aperture
> calculation.
>
> Matthew Rosato (7):
> iommu/s390: add initial fields to track table size
> s390/pci: set appropriate IOTA region type
> iommu/s390: add basic routines for region 1st and 2nd tables
> iommu/s390: support cleanup of additional table regions
> iommu/s390: support iova_to_phys for additional table regions
> iommu/s390: support map/unmap for additional table regions
> iommu/s390: allow larger region tables
>
> arch/s390/include/asm/pci.h | 2 +
> arch/s390/include/asm/pci_dma.h | 3 +
> arch/s390/pci/pci.c | 17 +-
> drivers/iommu/s390-iommu.c | 289 +++++++++++++++++++++++++++++---
> 4 files changed, 285 insertions(+), 26 deletions(-)
>
One note: this series and 'iommu/s390: add support for IOMMU passthrough' have a minor merge conflict but are otherwise independent. If anyone would care to test with both series simultaneously here is the conflict resolution of merging this series on top of 'iommu/s390: add support for IOMMU passthrough':
diff --cc arch/s390/pci/pci.c
index 758b23331754,9f7adf913729..291a3ee4d059
--- a/arch/s390/pci/pci.c
+++ b/arch/s390/pci/pci.c
@@@ -130,10 -146,7 +145,10 @@@ int zpci_register_ioat(struct zpci_dev
fib.pal = limit + (1 << 12);
else
fib.pal = limit;
- fib.iota = iota | zpci_get_iota_region_flag(zdev);
+ if (iota == 0)
+ fib.iota = iota;
+ else
- fib.iota = iota | ZPCI_IOTA_RTTO_FLAG;
++ fib.iota = iota | zpci_get_iota_region_flag(zdev);
fib.gd = zdev->gisa;
cc = zpci_mod_fc(req, &fib, status);
if (cc)