On 10/21/26 1:50 PM, Omar Elghoul wrote:
s390_pci_iommu_disable() destroys the I/O TLB and unpins the host's mappings, but it doesn't account for reclaiming the freed DMA slots. This is problematic when an IOMMU is disabled and re-enabled while reusing the container (e.g. during a guest reboot), which may cause the RPCIT path to fail with DMA slots exhaustion errors, manifesting as unexplained ENOMEMs in the guest. Fix it by reclaiming all the entries in the I/O TLB's hash table before removing all its entries. The actual DMA slots consumed by the IOMMU are already relinquished to vfio when the memory subregion is deleted in the same function. Cc: [email protected] Fixes: 37fa32de7073 ("s390x/pci: Honor DMA limits set by vfio") Signed-off-by: Omar Elghoul <[email protected]> --- hw/s390x/s390-pci-bus.c | 8 ++++++++ 1 file changed, 8 insertions(+)
Applied this to my queue for 11.2; thank you!
