Commit 8638c491 authored by Joerg Roedel's avatar Joerg Roedel
Browse files

x86/amd-iommu: Fix PCI hotplug with passthrough mode

The device change notifier is initialized in the dma_ops
initialization path. But this path is never executed for
iommu=pt. Move the notifier initialization to IOMMU hardware
init code to fix this.

Signed-off-by: default avatarJoerg Roedel <>
parent b7cc9554
......@@ -30,6 +30,7 @@ extern void amd_iommu_apply_erratum_63(u16 devid);
extern void amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu);
extern int amd_iommu_init_devices(void);
extern void amd_iommu_uninit_devices(void);
extern void amd_iommu_init_notifier(void);
static inline void amd_iommu_stats_init(void) { }
......@@ -1624,6 +1624,11 @@ static struct notifier_block device_nb = {
.notifier_call = device_change_notifier,
void amd_iommu_init_notifier(void)
bus_register_notifier(&pci_bus_type, &device_nb);
* The next functions belong to the dma_ops mapping/unmapping code.
......@@ -2250,8 +2255,6 @@ int __init amd_iommu_init_dma_ops(void)
bus_register_notifier(&pci_bus_type, &device_nb);
return 0;
......@@ -1285,6 +1285,8 @@ static int __init amd_iommu_init(void)
if (ret)
goto free;
if (iommu_pass_through)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment