Pull iommu fixes from Joerg Roedel: - AMD IOMMU: Fix potential NULL-ptr dereference in error path of amd_iommu_probe_device() - Generic IOMMUPT: Fix another compiler issue seen with older compiler versions - Fix signedness issue in ARM IO-PageTable code * tag 'iommu-fixes-v6.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux: iommu/io-pgtable-arm: fix size_t signedness bug in unmap path iommupt: Make it clearer to the compiler that pts.level == 0 for single page iommu/amd: Fix error path in amd_iommu_probe_device()
Unified · Split
| @@ -2450,8 +2450,6 @@ static struct iommu_device *amd_iommu_probe_device(struct device *dev) · 2449 unmodified lines | ||
| 2450 | 2450 | goto out_err; |
| 2451 | 2451 | } |
| 2452 | 2452 | |
| 2453 | −out_err: | |
| 2454 | − | |
| 2455 | 2453 | iommu_completion_wait(iommu); |
| 2456 | 2454 | |
| 2457 | 2455 | if (FEATURE_NUM_INT_REMAP_SUP_2K(amd_iommu_efr2)) |
| @@ -2462,6 +2460,7 @@ out_err: · 4 unmodified lines | ||
| 2462 | 2460 | if (dev_is_pci(dev)) |
| 2463 | 2461 | pci_prepare_ats(to_pci_dev(dev), PAGE_SHIFT); |
| 2464 | 2462 | |
| 2463 | +out_err: | |
| 2465 | 2464 | return iommu_dev; |
| 2466 | 2465 | } |
| 2467 | 2466 | |
| @@ -645,7 +645,7 @@ static __always_inline int __do_map_single_page(struct pt_range *range, · 644 unmodified lines | ||
| 645 | 645 | struct pt_iommu_map_args *map = arg; |
| 646 | 646 | |
| 647 | 647 | pts.type = pt_load_single_entry(&pts); |
| 648 | − if (level == 0) { | |
| 648 | + if (pts.level == 0) { | |
| 649 | 649 | if (pts.type != PT_ENTRY_EMPTY) |
| 650 | 650 | return -EADDRINUSE; |
| 651 | 651 | pt_install_leaf_entry(&pts, map->oa, PAGE_SHIFT, |
| @@ -637,7 +637,7 @@ static size_t __arm_lpae_unmap(struct arm_lpae_io_pgtable *data, · 636 unmodified lines | ||
| 637 | 637 | pte = READ_ONCE(*ptep); |
| 638 | 638 | if (!pte) { |
| 639 | 639 | WARN_ON(!(data->iop.cfg.quirks & IO_PGTABLE_QUIRK_NO_WARN)); |
| 640 | − return -ENOENT; | |
| 640 | + return 0; | |
| 641 | 641 | } |
| 642 | 642 | |
| 643 | 643 | /* If the size matches this level, we're in the right place */ |