diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2009-12-10 11:12:25 +0100 |
---|---|---|
committer | Joerg Roedel <joerg.roedel@amd.com> | 2009-12-10 12:23:47 +0100 |
commit | 8638c4914f34fedc1c13b1cc13f6d1e5a78c46b4 (patch) | |
tree | 55cc1616c02f140a92f467ef493137d5085537ff /arch/x86/kernel/amd_iommu.c | |
parent | x86/amd-iommu: Fix passthrough mode (diff) | |
download | linux-8638c4914f34fedc1c13b1cc13f6d1e5a78c46b4.tar.xz linux-8638c4914f34fedc1c13b1cc13f6d1e5a78c46b4.zip |
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: Joerg Roedel <joerg.roedel@amd.com>
Diffstat (limited to 'arch/x86/kernel/amd_iommu.c')
-rw-r--r-- | arch/x86/kernel/amd_iommu.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index 450dd6ac03d3..a83185080e91 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c @@ -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) register_iommu(&amd_iommu_ops); - bus_register_notifier(&pci_bus_type, &device_nb); - amd_iommu_stats_init(); return 0; |