[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 21/38] pci-assign: assigned_initfn(): set monitor err
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PULL 21/38] pci-assign: assigned_initfn(): set monitor error in common error handler |
Date: |
Thu, 8 May 2014 14:52:45 -0400 |
From: Laszlo Ersek <address@hidden>
Signed-off-by: Laszlo Ersek <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Luiz Capitulino <address@hidden>
---
hw/i386/kvm/pci-assign.c | 26 ++++++++++----------------
1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/hw/i386/kvm/pci-assign.c b/hw/i386/kvm/pci-assign.c
index 6891729..e55421a 100644
--- a/hw/i386/kvm/pci-assign.c
+++ b/hw/i386/kvm/pci-assign.c
@@ -1756,14 +1756,14 @@ static int assigned_initfn(struct PCIDevice *pci_dev)
Error *local_err = NULL;
if (!kvm_enabled()) {
- error_report("pci-assign: error: requires KVM support");
- return -1;
+ error_setg(&local_err, "pci-assign requires KVM support");
+ goto exit_with_error;
}
if (!dev->host.domain && !dev->host.bus && !dev->host.slot &&
!dev->host.function) {
- error_report("pci-assign: error: no host device specified");
- return -1;
+ error_setg(&local_err, "no host device specified");
+ goto exit_with_error;
}
/*
@@ -1788,14 +1788,10 @@ static int assigned_initfn(struct PCIDevice *pci_dev)
get_real_device(dev, &local_err);
if (local_err) {
- qerror_report_err(local_err);
- error_free(local_err);
goto out;
}
if (assigned_device_pci_cap_init(pci_dev, &local_err) < 0) {
- qerror_report_err(local_err);
- error_free(local_err);
goto out;
}
@@ -1803,8 +1799,6 @@ static int assigned_initfn(struct PCIDevice *pci_dev)
if (dev->cap.available & ASSIGNED_DEVICE_CAP_MSIX) {
assigned_dev_register_msix_mmio(dev, &local_err);
if (local_err) {
- qerror_report_err(local_err);
- error_free(local_err);
goto out;
}
}
@@ -1814,8 +1808,6 @@ static int assigned_initfn(struct PCIDevice *pci_dev)
dev->real_device.region_number, dev,
&local_err);
if (local_err) {
- qerror_report_err(local_err);
- error_free(local_err);
goto out;
}
@@ -1828,16 +1820,12 @@ static int assigned_initfn(struct PCIDevice *pci_dev)
/* assign device to guest */
assign_device(dev, &local_err);
if (local_err) {
- qerror_report_err(local_err);
- error_free(local_err);
goto out;
}
/* assign legacy INTx to the device */
r = assign_intx(dev, &local_err);
if (r < 0) {
- qerror_report_err(local_err);
- error_free(local_err);
goto assigned_out;
}
@@ -1849,8 +1837,14 @@ static int assigned_initfn(struct PCIDevice *pci_dev)
assigned_out:
deassign_device(dev);
+
out:
free_assigned_device(dev);
+
+exit_with_error:
+ assert(local_err);
+ qerror_report_err(local_err);
+ error_free(local_err);
return -1;
}
--
1.9.0
- [Qemu-devel] [PULL 14/38] pci-assign: assignment should fail if we can't read config space, (continued)
- [Qemu-devel] [PULL 14/38] pci-assign: assignment should fail if we can't read config space, Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 12/38] pci: add Error-propagating pci_add_capability2(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 13/38] pci-assign: accept Error from pci_add_capability2(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 15/38] pci-assign: propagate errors from get_real_device(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 16/38] pci-assign: propagate errors from assigned_device_pci_cap_init(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 09/38] pci-assign: make assign_failed_examine() just format the cause, Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 18/38] pci-assign: propagate errors from assigned_dev_register_regions(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 17/38] pci-assign: propagate errors from assigned_dev_register_msix_mmio(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 19/38] pci-assign: propagate errors from assign_device(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 20/38] pci-assign: propagate errors from assign_intx(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 21/38] pci-assign: assigned_initfn(): set monitor error in common error handler,
Luiz Capitulino <=
- [Qemu-devel] [PULL 23/38] qga: Consistently name Error ** objects errp, and not err, Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 22/38] qmp hmp: Consistently name Error * objects err, and not errp, Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 24/38] qmp: Consistently name Error ** objects errp, and not err, Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 25/38] error: Consistently name Error ** objects errp, and not err, Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 27/38] hmp: Guard against misuse of hmp_handle_error(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 26/38] qga: Use return values instead of error_is_set(errp), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 28/38] qapi: Drop redundant, unclean error_is_set(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 30/38] qapi: Clean up fragile use of error_is_set(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 29/38] tests/qapi-schema: Drop superfluous error_is_set(), Luiz Capitulino, 2014/05/08
- [Qemu-devel] [PULL 31/38] qga: Clean up fragile use of error_is_set(), Luiz Capitulino, 2014/05/08