linux/drivers/iommu/amd
Jerry Snitselaar 8f7f8d06af iommu/amd: Set page size bitmap during V2 domain allocation
[ Upstream commit 8f880d19e6 ]

With the addition of the V2 page table support, the domain page size
bitmap needs to be set prior to iommu core setting up direct mappings
for reserved regions. When reserved regions are mapped, if this is not
done, it will be looking at the V1 page size bitmap when determining
the page size to use in iommu_pgsize(). When it gets into the actual
amd mapping code, a check of see if the page size is supported can
fail, because at that point it is checking it against the V2 page size
bitmap which only supports 4K, 2M, and 1G.

Add a check to __iommu_domain_alloc() to not override the
bitmap if it was already set by the iommu ops domain_alloc() code path.

Cc: Vasant Hegde <vasant.hegde@amd.com>
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Joerg Roedel <joro@8bytes.org>
Fixes: 4db6c41f09 ("iommu/amd: Add support for using AMD IOMMU v2 page table for DMA-API")
Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
Reviewed-by: Vasant Hegde <vasant.hegde@amd.com>
Link: https://lore.kernel.org/r/20230404072742.1895252-1-jsnitsel@redhat.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-05-11 23:03:34 +09:00
..
amd_iommu.h iommu/amd: Clean up bus_set_iommu() 2022-09-07 14:26:12 +02:00
amd_iommu_types.h iommu/amd: Fix "Guest Virtual APIC Table Root Pointer" configuration in IRTE 2023-05-11 23:03:04 +09:00
debugfs.c iommu/amd: Move AMD IOMMU driver into subdirectory 2020-06-10 17:46:42 +02:00
init.c iommu/amd: Add a length limitation for the ivrs_acpihid command-line parameter 2023-03-10 09:34:27 +01:00
io_pgtable.c iommu/amd/io-pgtable: Implement unmap_pages io_pgtable_ops callback 2022-09-07 16:12:33 +02:00
io_pgtable_v2.c iommu/amd: Initial support for AMD IOMMU v2 page table 2022-09-07 16:12:35 +02:00
iommu.c iommu/amd: Set page size bitmap during V2 domain allocation 2023-05-11 23:03:34 +09:00
iommu_v2.c iommu/amd: Fix pci device refcount leak in ppr_notifier() 2022-12-31 13:32:50 +01:00
Kconfig iommu/dma: Clean up Kconfig 2022-09-07 14:46:59 +02:00
Makefile iommu/amd: Initial support for AMD IOMMU v2 page table 2022-09-07 16:12:35 +02:00
quirks.c iommu/amd: Include PCI segment ID when initialize IOMMU 2022-07-07 09:37:51 +02:00