]> xenbits.xensource.com Git - libvirt.git/commitdiff
Add missing device type check in QEMU PCI hotunplug
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 3 Mar 2010 15:15:21 +0000 (15:15 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 4 Mar 2010 11:56:07 +0000 (11:56 +0000)
The QEMU hotunplug code for PCI devices was looking at host
devices in the guest config without first filtering non
PCI devices. This means it was reading garbage

* src/qemu/qemu_driver.c: Filter out non-PCI devices

src/qemu/qemu_driver.c

index bb3edde8bb1a53478634f0463d2840c2b213c5ff..b03ec2d00bfc2662f1bea74f19abf293d0a7d336 100644 (file)
@@ -6854,6 +6854,10 @@ static int qemudDomainDetachHostPciDevice(struct qemud_driver *driver,
     pciDevice *pci;
 
     for (i = 0 ; i < vm->def->nhostdevs ; i++) {
+        if (vm->def->hostdevs[i]->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS ||
+            vm->def->hostdevs[i]->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
+            continue;
+
         unsigned domain   = vm->def->hostdevs[i]->source.subsys.u.pci.domain;
         unsigned bus      = vm->def->hostdevs[i]->source.subsys.u.pci.bus;
         unsigned slot     = vm->def->hostdevs[i]->source.subsys.u.pci.slot;