Fix segfault after device assignment hot remove
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.
Signed-off-by Alex Williamson <[email protected]>
---
hw/device-assignment.c +1 -0
@@ -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 ;
Marcelo Tosatti
AppliedQuoted 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.Signed-off-by Alex Williamson <[email protected]>---
Applied to master and stable-0.12, thanks.