[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL for-2.10 2/7] xen_pt_msi.c: Check for xen_host_pci_ge
From: |
Stefano Stabellini |
Subject: |
[Qemu-devel] [PULL for-2.10 2/7] xen_pt_msi.c: Check for xen_host_pci_get_* failures in xen_pt_msix_init() |
Date: |
Tue, 18 Jul 2017 15:22:37 -0700 |
From: Peter Maydell <address@hidden>
Check the return status of the xen_host_pci_get_* functions we call in
xen_pt_msix_init(), and fail device init if the reads failed rather than
ploughing ahead. (Spotted by Coverity: CID 777338.)
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Stefano Stabellini <address@hidden>
Signed-off-by: Stefano Stabellini <address@hidden>
---
hw/xen/xen_pt_msi.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/hw/xen/xen_pt_msi.c b/hw/xen/xen_pt_msi.c
index 62add06..ff9a79f 100644
--- a/hw/xen/xen_pt_msi.c
+++ b/hw/xen/xen_pt_msi.c
@@ -535,7 +535,11 @@ int xen_pt_msix_init(XenPCIPassthroughState *s, uint32_t
base)
return -1;
}
- xen_host_pci_get_word(hd, base + PCI_MSIX_FLAGS, &control);
+ rc = xen_host_pci_get_word(hd, base + PCI_MSIX_FLAGS, &control);
+ if (rc) {
+ XEN_PT_ERR(d, "Failed to read PCI_MSIX_FLAGS field\n");
+ return rc;
+ }
total_entries = control & PCI_MSIX_FLAGS_QSIZE;
total_entries += 1;
@@ -554,7 +558,11 @@ int xen_pt_msix_init(XenPCIPassthroughState *s, uint32_t
base)
+ XC_PAGE_SIZE - 1)
& XC_PAGE_MASK);
- xen_host_pci_get_long(hd, base + PCI_MSIX_TABLE, &table_off);
+ rc = xen_host_pci_get_long(hd, base + PCI_MSIX_TABLE, &table_off);
+ if (rc) {
+ XEN_PT_ERR(d, "Failed to read PCI_MSIX_TABLE field\n");
+ goto error_out;
+ }
bar_index = msix->bar_index = table_off & PCI_MSIX_FLAGS_BIRMASK;
table_off = table_off & ~PCI_MSIX_FLAGS_BIRMASK;
msix->table_base = s->real_device.io_regions[bar_index].base_addr;
--
1.9.1
- [Qemu-devel] [PULL for-2.0 0/7] please pull xen-20170718-tag, Stefano Stabellini, 2017/07/18
- [Qemu-devel] [PULL for-2.10 1/7] hw/xen: Set emu_mask for igd_opregion register, Stefano Stabellini, 2017/07/18
- [Qemu-devel] [PULL for-2.10 4/7] xen: move physmap saving into a separate function, Stefano Stabellini, 2017/07/18
- [Qemu-devel] [PULL for-2.10 2/7] xen_pt_msi.c: Check for xen_host_pci_get_* failures in xen_pt_msix_init(),
Stefano Stabellini <=
- [Qemu-devel] [PULL for-2.10 5/7] xen/mapcache: add an ability to create dummy mappings, Stefano Stabellini, 2017/07/18
- [Qemu-devel] [PULL for-2.10 3/7] xen-platform: separate unplugging of NVMe disks, Stefano Stabellini, 2017/07/18
- [Qemu-devel] [PULL for-2.10 6/7] xen/mapcache: introduce xen_replace_cache_entry(), Stefano Stabellini, 2017/07/18
- [Qemu-devel] [PULL for-2.10 7/7] xen: don't use xenstore to save/restore physmap anymore, Stefano Stabellini, 2017/07/18
- Re: [Qemu-devel] [PULL for-2.0 0/7] please pull xen-20170718-tag, Peter Maydell, 2017/07/19