powerpc/pseries/iommu: Use correct vfree for it_map
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Wed, 20 Oct 2021 13:23:13 +0000 (00:23 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 25 Oct 2021 00:41:14 +0000 (11:41 +1100)
The it_map array is vzalloc'ed so use vfree() for it when creating
a huge DMA window failed for whatever reason.

While at this, write zero to it_map.

Fixes: 381ceda88c4c ("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-3-aik@ozlabs.ru
arch/powerpc/platforms/pseries/iommu.c

index dab5c56..c003f69 100644 (file)
@@ -1440,7 +1440,8 @@ static bool enable_ddw(struct pci_dev *dev, struct device_node *pdn)
                /* Keep default DMA window stuct if removed */
                if (default_win_removed) {
                        tbl->it_size = 0;
-                       kfree(tbl->it_map);
+                       vfree(tbl->it_map);
+                       tbl->it_map = NULL;
                }
 
                set_iommu_table_base(&dev->dev, newtbl);