Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'iommu-fixes-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux

Pull iommu fixes from Will Deacon:
"We're still resolving a regression with the handling of unexpected
page faults on SMMUv3, but we're not quite there with a fix yet.

- Fix NULL dereference when freeing domain in Unisoc SPRD driver

- Separate assignment statements with semicolons in AMD page-table
code

- Fix Tegra erratum workaround when the CPU is using 16KiB pages"

* tag 'iommu-fixes-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux:
iommu: arm-smmu: Fix Tegra workaround for PAGE_SIZE mappings
iommu/amd: Convert comma to semicolon
iommu: sprd: Avoid NULL deref in sprd_iommu_hw_en

+5 -5
+3 -3
drivers/iommu/amd/io_pgtable.c
··· 588 588 { 589 589 struct amd_io_pgtable *pgtable = io_pgtable_cfg_to_data(cfg); 590 590 591 - cfg->pgsize_bitmap = AMD_IOMMU_PGSIZES, 592 - cfg->ias = IOMMU_IN_ADDR_BIT_SIZE, 593 - cfg->oas = IOMMU_OUT_ADDR_BIT_SIZE, 591 + cfg->pgsize_bitmap = AMD_IOMMU_PGSIZES; 592 + cfg->ias = IOMMU_IN_ADDR_BIT_SIZE; 593 + cfg->oas = IOMMU_OUT_ADDR_BIT_SIZE; 594 594 cfg->tlb = &v1_flush_ops; 595 595 596 596 pgtable->iop.ops.map_pages = iommu_v1_map_pages;
+1 -1
drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c
··· 277 277 */ 278 278 if (of_device_is_compatible(np, "nvidia,tegra234-smmu") || 279 279 of_device_is_compatible(np, "nvidia,tegra194-smmu")) { 280 - smmu->pgsize_bitmap = PAGE_SIZE; 280 + smmu->pgsize_bitmap &= GENMASK(PAGE_SHIFT, 0); 281 281 pgtbl_cfg->pgsize_bitmap = smmu->pgsize_bitmap; 282 282 } 283 283
+1 -1
drivers/iommu/sprd-iommu.c
··· 232 232 233 233 pgt_size = sprd_iommu_pgt_size(&dom->domain); 234 234 dma_free_coherent(dom->sdev->dev, pgt_size, dom->pgt_va, dom->pgt_pa); 235 - dom->sdev = NULL; 236 235 sprd_iommu_hw_en(dom->sdev, false); 236 + dom->sdev = NULL; 237 237 } 238 238 239 239 static void sprd_iommu_domain_free(struct iommu_domain *domain)