mirror of
https://github.com/torvalds/linux.git
synced 2026-01-24 23:16:46 +00:00
Merge tag 'iommu-fixes-v6.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux
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()
This commit is contained in:
@@ -2450,8 +2450,6 @@ static struct iommu_device *amd_iommu_probe_device(struct device *dev)
|
|||||||
goto out_err;
|
goto out_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
out_err:
|
|
||||||
|
|
||||||
iommu_completion_wait(iommu);
|
iommu_completion_wait(iommu);
|
||||||
|
|
||||||
if (FEATURE_NUM_INT_REMAP_SUP_2K(amd_iommu_efr2))
|
if (FEATURE_NUM_INT_REMAP_SUP_2K(amd_iommu_efr2))
|
||||||
@@ -2462,6 +2460,7 @@ out_err:
|
|||||||
if (dev_is_pci(dev))
|
if (dev_is_pci(dev))
|
||||||
pci_prepare_ats(to_pci_dev(dev), PAGE_SHIFT);
|
pci_prepare_ats(to_pci_dev(dev), PAGE_SHIFT);
|
||||||
|
|
||||||
|
out_err:
|
||||||
return iommu_dev;
|
return iommu_dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -645,7 +645,7 @@ static __always_inline int __do_map_single_page(struct pt_range *range,
|
|||||||
struct pt_iommu_map_args *map = arg;
|
struct pt_iommu_map_args *map = arg;
|
||||||
|
|
||||||
pts.type = pt_load_single_entry(&pts);
|
pts.type = pt_load_single_entry(&pts);
|
||||||
if (level == 0) {
|
if (pts.level == 0) {
|
||||||
if (pts.type != PT_ENTRY_EMPTY)
|
if (pts.type != PT_ENTRY_EMPTY)
|
||||||
return -EADDRINUSE;
|
return -EADDRINUSE;
|
||||||
pt_install_leaf_entry(&pts, map->oa, PAGE_SHIFT,
|
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,
|
|||||||
pte = READ_ONCE(*ptep);
|
pte = READ_ONCE(*ptep);
|
||||||
if (!pte) {
|
if (!pte) {
|
||||||
WARN_ON(!(data->iop.cfg.quirks & IO_PGTABLE_QUIRK_NO_WARN));
|
WARN_ON(!(data->iop.cfg.quirks & IO_PGTABLE_QUIRK_NO_WARN));
|
||||||
return -ENOENT;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the size matches this level, we're in the right place */
|
/* If the size matches this level, we're in the right place */
|
||||||
|
|||||||
Reference in New Issue
Block a user