[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 12/16] pci-assign: propagate errors from assigned_de
From: |
Laszlo Ersek |
Subject: |
[Qemu-devel] [PATCH 12/16] pci-assign: propagate errors from assigned_dev_register_msix_mmio() |
Date: |
Thu, 10 Apr 2014 10:24:41 +0200 |
The return type is also changed from "int" to "void", because it was used
in a success vs. failure sense only (the caller didn't distinguish error
codes from each other, and even assigned_dev_register_msix_mmio() masked
mmap()'s errno values with a common -EFAULT).
Signed-off-by: Laszlo Ersek <address@hidden>
---
hw/i386/kvm/pci-assign.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/hw/i386/kvm/pci-assign.c b/hw/i386/kvm/pci-assign.c
index 2de6559..3a904e8 100644
--- a/hw/i386/kvm/pci-assign.c
+++ b/hw/i386/kvm/pci-assign.c
@@ -1642,24 +1642,23 @@ static void assigned_dev_msix_reset(AssignedDevice *dev)
for (i = 0, entry = dev->msix_table; i < dev->msix_max; i++, entry++) {
entry->ctrl = cpu_to_le32(0x1); /* Masked */
}
}
-static int assigned_dev_register_msix_mmio(AssignedDevice *dev)
+static void assigned_dev_register_msix_mmio(AssignedDevice *dev, Error **errp)
{
dev->msix_table = mmap(NULL, MSIX_PAGE_SIZE, PROT_READ|PROT_WRITE,
MAP_ANONYMOUS|MAP_PRIVATE, 0, 0);
if (dev->msix_table == MAP_FAILED) {
- error_report("fail allocate msix_table! %s", strerror(errno));
- return -EFAULT;
+ error_setg_errno(errp, errno, "failed to allocate msix_table");
+ return;
}
assigned_dev_msix_reset(dev);
memory_region_init_io(&dev->mmio, OBJECT(dev), &assigned_dev_msix_mmio_ops,
dev, "assigned-dev-msix", MSIX_PAGE_SIZE);
- return 0;
}
static void assigned_dev_unregister_msix_mmio(AssignedDevice *dev)
{
if (!dev->msix_table) {
@@ -1786,11 +1785,14 @@ static int assigned_initfn(struct PCIDevice *pci_dev)
goto out;
}
/* intercept MSI-X entry page in the MMIO */
if (dev->cap.available & ASSIGNED_DEVICE_CAP_MSIX) {
- if (assigned_dev_register_msix_mmio(dev)) {
+ assigned_dev_register_msix_mmio(dev, &local_err);
+ if (local_err) {
+ qerror_report_err(local_err);
+ error_free(local_err);
goto out;
}
}
/* handle real device's MMIO/PIO BARs */
--
1.8.3.1
- Re: [Qemu-devel] [PATCH 05/16] pci-assign: propagate errors from get_real_id(), (continued)
- [Qemu-devel] [PATCH 11/16] pci-assign: propagate errors from assigned_device_pci_cap_init(), Laszlo Ersek, 2014/04/10
- [Qemu-devel] [PATCH 13/16] pci-assign: propagate errors from assigned_dev_register_regions(), Laszlo Ersek, 2014/04/10
- [Qemu-devel] [PATCH 14/16] pci-assign: propagate errors from assign_device(), Laszlo Ersek, 2014/04/10
- [Qemu-devel] [PATCH 15/16] pci-assign: propagate errors from assign_intx(), Laszlo Ersek, 2014/04/10
- [Qemu-devel] [PATCH 12/16] pci-assign: propagate errors from assigned_dev_register_msix_mmio(),
Laszlo Ersek <=
- [Qemu-devel] [PATCH 16/16] pci-assign: assigned_initfn(): set monitor error in common error handler, Laszlo Ersek, 2014/04/10
- Re: [Qemu-devel] [PATCH 00/16] PCI device assignment: improve error reporting over QMP, Laszlo Ersek, 2014/04/30