Skip to contentSkip to conversation

Fix segfault after device assignment hot remove

PATCH Applied Alex Williamson 2 participants 2 messages May 6, 2010 – May 11, 2010 KVM

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix segfault after device assignment hot remove

We keep a qlist of assigned devices for irq updates, but we forgot to remove entries from it if they're hot unplugged. This makes assigned_dev_update_irqs() a timebomb that goes off when the guest is rebooted.

---

hw/device-assignment.c +1 -0
index 1f13a6d..b9cc06f 100644
@@ -1390,6 +1390,7 @@ static int assigned_exitfn(struct PCIDevice *pci_dev)
 {
     AssignedDevice *dev = DO_UPCAST(AssignedDevice, dev, pci_dev);
 
+    QLIST_REMOVE(dev, next);
     deassign_device(dev);
     free_assigned_device(dev);
     return 0;
#1 lore raw
Quoted 7 lines · Alex Williamson

We keep a qlist of assigned devices for irq updates, but we forgot to remove entries from it if they're hot unplugged. This makes assigned_dev_update_irqs() a timebomb that goes off when the guest is rebooted.

---

Applied to master and stable-0.12, thanks.