]> xenbits.xensource.com Git - qemu-xen-4.4-testing.git/commitdiff
pass-through: Catch errors in do_pci_del()
authorIan Jackson <ian.jackson@eu.citrix.com>
Wed, 3 Jun 2009 14:38:09 +0000 (15:38 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Wed, 3 Jun 2009 14:38:09 +0000 (15:38 +0100)
(The strdup() is needed because the parsing of devname is destructive.)

Signed-off-by: Simon Horman <horms@verge.net.au>
xen-vl-extra.c

index 3d1358348a0ddeda370d98e5204b56f75439f5e5..7beb6ef67d2d4a2344866bb80d4039f60f21df6a 100644 (file)
@@ -103,9 +103,21 @@ struct qemu_alarm_timer;
 void do_pci_del(char *devname)
 {
     int pci_slot;
+    char *devname_cpy;
+
+    devname_cpy = strdup(devname);
+    if (!devname_cpy)
+        return;
+
     pci_slot = bdf_to_slot(devname);
 
-    acpi_php_del(pci_slot);
+    if (pci_slot < 0)
+        fprintf(logfile, "Device \"%s\" is not used by a hotplug device.\n",
+                devname_cpy);
+    else
+        acpi_php_del(pci_slot);
+
+    free(devname_cpy);
 }
 
 void do_pci_add(char *devname)