[PATCH 8/9] PCI: vmd: Protect root bus removal with rescan lock

From: Hans Zhang

Date: Thu May 21 2026 - 12:38:20 EST


Hold pci_rescan_remove_global_lock while stopping and removing the VMD
root bus in vmd_remove() to prevent races with PCI rescan operations.

Signed-off-by: Hans Zhang <18255117159@xxxxxxx>
---
drivers/pci/controller/vmd.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index d4ae250d4bc6..9565567026cf 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -1056,9 +1056,11 @@ static void vmd_remove(struct pci_dev *dev)
{
struct vmd_dev *vmd = pci_get_drvdata(dev);

+ pci_lock_rescan_remove();
pci_stop_root_bus(vmd->bus);
sysfs_remove_link(&vmd->dev->dev.kobj, "domain");
pci_remove_root_bus(vmd->bus);
+ pci_unlock_rescan_remove();
vmd_cleanup_srcu(vmd);
vmd_detach_resources(vmd);
vmd_remove_irq_domain(vmd);
--
2.34.1