From c6ef16ca6b55aba22f287caaa30ad5ed5e772e88 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 3 Jun 2009 15:38:09 +0100 Subject: [PATCH] pass-through: Catch errors in do_pci_del() (The strdup() is needed because the parsing of devname is destructive.) Signed-off-by: Simon Horman --- xen-vl-extra.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/xen-vl-extra.c b/xen-vl-extra.c index 3d135834..7beb6ef6 100644 --- a/xen-vl-extra.c +++ b/xen-vl-extra.c @@ -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) -- 2.39.5