]> rtime.felk.cvut.cz Git - lisovros/qemu_apohw.git/commitdiff
pci-assign: accept Error from monitor_handle_fd_param2()
authorLaszlo Ersek <lersek@redhat.com>
Thu, 10 Apr 2014 08:24:32 +0000 (10:24 +0200)
committerLuiz Capitulino <lcapitulino@redhat.com>
Thu, 8 May 2014 18:19:59 +0000 (14:19 -0400)
Propagate any errors in monitor fd handling up to get_real_device(), and
report them there. We'll continue the propagation upwards when
get_real_device() becomes a leaf itself (when none of its callees will
report errors internally any longer when detecting and returning an
error).

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
eviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
hw/i386/kvm/pci-assign.c

index a825871d8a7c687fdf2feb2b1ae97fe17d89ce3b..bfce97fcca49b869a6dbdc465afe8be3192f3d55 100644 (file)
@@ -541,6 +541,7 @@ static int get_real_device(AssignedDevice *pci_dev)
     uint16_t id;
     PCIRegion *rp;
     PCIDevRegions *dev = &pci_dev->real_device;
+    Error *local_err = NULL;
 
     dev->region_number = 0;
 
@@ -551,8 +552,12 @@ static int get_real_device(AssignedDevice *pci_dev)
     snprintf(name, sizeof(name), "%sconfig", dir);
 
     if (pci_dev->configfd_name && *pci_dev->configfd_name) {
-        dev->config_fd = monitor_handle_fd_param(cur_mon, pci_dev->configfd_name);
-        if (dev->config_fd < 0) {
+        dev->config_fd = monitor_handle_fd_param2(cur_mon,
+                                                  pci_dev->configfd_name,
+                                                  &local_err);
+        if (local_err) {
+            qerror_report_err(local_err);
+            error_free(local_err);
             return 1;
         }
     } else {