iommu/vt-d: Remove duplicated code for device hotplug
The iommu generic code has handled the device hotplug cases. Remove the duplicated code. Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
0e31a72665
commit
b7297783c2
|
@ -4548,39 +4548,6 @@ int dmar_iommu_notify_scope_dev(struct dmar_pci_notify_info *info)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Here we only respond to action of unbound device from driver.
|
|
||||||
*
|
|
||||||
* Added device is not attached to its DMAR domain here yet. That will happen
|
|
||||||
* when mapping the device to iova.
|
|
||||||
*/
|
|
||||||
static int device_notifier(struct notifier_block *nb,
|
|
||||||
unsigned long action, void *data)
|
|
||||||
{
|
|
||||||
struct device *dev = data;
|
|
||||||
struct dmar_domain *domain;
|
|
||||||
|
|
||||||
if (iommu_dummy(dev))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (action == BUS_NOTIFY_REMOVED_DEVICE) {
|
|
||||||
domain = find_domain(dev);
|
|
||||||
if (!domain)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
dmar_remove_one_dev_info(dev);
|
|
||||||
} else if (action == BUS_NOTIFY_ADD_DEVICE) {
|
|
||||||
if (iommu_should_identity_map(dev))
|
|
||||||
domain_add_dev_info(si_domain, dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct notifier_block device_nb = {
|
|
||||||
.notifier_call = device_notifier,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int intel_iommu_memory_notifier(struct notifier_block *nb,
|
static int intel_iommu_memory_notifier(struct notifier_block *nb,
|
||||||
unsigned long val, void *v)
|
unsigned long val, void *v)
|
||||||
{
|
{
|
||||||
|
@ -4955,7 +4922,6 @@ int __init intel_iommu_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
bus_set_iommu(&pci_bus_type, &intel_iommu_ops);
|
bus_set_iommu(&pci_bus_type, &intel_iommu_ops);
|
||||||
bus_register_notifier(&pci_bus_type, &device_nb);
|
|
||||||
if (si_domain && !hw_pass_through)
|
if (si_domain && !hw_pass_through)
|
||||||
register_memory_notifier(&intel_iommu_memory_nb);
|
register_memory_notifier(&intel_iommu_memory_nb);
|
||||||
cpuhp_setup_state(CPUHP_IOMMU_INTEL_DEAD, "iommu/intel:dead", NULL,
|
cpuhp_setup_state(CPUHP_IOMMU_INTEL_DEAD, "iommu/intel:dead", NULL,
|
||||||
|
|
Loading…
Reference in New Issue