]> git.itanic.dy.fi Git - linux-stable/commit
powerpc/iommu: Incorrect DDW Table is referenced for SR-IOV device
authorGaurav Batra <gbatra@linux.vnet.ibm.com>
Fri, 5 May 2023 18:47:01 +0000 (13:47 -0500)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 16 May 2023 14:54:55 +0000 (00:54 +1000)
commit1f7aacc5eb9ed2cc17be7a90da5cd559effb9d59
tree69f8c4ef0ead3e36ed5b8081350f0bb773ba7272
parent096339ab84f36beae0b1db25e0ce63fb3873e8b2
powerpc/iommu: Incorrect DDW Table is referenced for SR-IOV device

For an SR-IOV device, while enabling DDW, a new table is created and
added at index 1 in the group. In the below 2 scenarios, the table is
incorrectly referenced at index 0 (which is where the table is for
default DMA window).

1. When adding DDW

   This issue is exposed with "slub_debug". Error thrown out from
   dma_iommu_dma_supported()

   Warning: IOMMU offset too big for device mask
   mask: 0xffffffff, table offset: 0x800000000000000

2. During Dynamic removal of the PCI device.

   Error is from iommu_tce_table_put() since a NULL table pointer is
   passed in.

Fixes: 381ceda88c4c ("powerpc/pseries/iommu: Make use of DDW for indirect mapping")
Cc: stable@vger.kernel.org # v5.15+
Signed-off-by: Gaurav Batra <gbatra@linux.vnet.ibm.com>
Reviewed-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230505184701.91613-1-gbatra@linux.vnet.ibm.com
arch/powerpc/kernel/dma-iommu.c
arch/powerpc/platforms/pseries/iommu.c