[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 13/33] hw/pci-bridge: fix QEMU crash because of pcie-
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL 13/33] hw/pci-bridge: fix QEMU crash because of pcie-root-port |
Date: |
Tue, 16 Jan 2018 06:47:26 +0200 |
From: Marcel Apfelbaum <address@hidden>
If we try to use more pcie_root_ports then available slots
and an IO hint is passed to the port, QEMU crashes because
we try to init the "IO hint" capability even if the device
is not created.
Fix it by checking for error before adding the capability,
so QEMU can fail gracefully.
Signed-off-by: Marcel Apfelbaum <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
hw/pci-bridge/gen_pcie_root_port.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/pci-bridge/gen_pcie_root_port.c
b/hw/pci-bridge/gen_pcie_root_port.c
index ad4e6aa..0e2f2e8 100644
--- a/hw/pci-bridge/gen_pcie_root_port.c
+++ b/hw/pci-bridge/gen_pcie_root_port.c
@@ -74,8 +74,13 @@ static void gen_rp_realize(DeviceState *dev, Error **errp)
PCIDevice *d = PCI_DEVICE(dev);
GenPCIERootPort *grp = GEN_PCIE_ROOT_PORT(d);
PCIERootPortClass *rpc = PCIE_ROOT_PORT_GET_CLASS(d);
+ Error *local_err = NULL;
- rpc->parent_realize(dev, errp);
+ rpc->parent_realize(dev, &local_err);
+ if (local_err) {
+ error_propagate(errp, local_err);
+ return;
+ }
int rc = pci_bridge_qemu_reserve_cap_init(d, 0, grp->bus_reserve,
grp->io_reserve, grp->mem_reserve, grp->pref32_reserve,
--
MST
- [Qemu-devel] [PULL 04/33] contrib/libvhost-user: enable virtio config space messages, (continued)
- [Qemu-devel] [PULL 04/33] contrib/libvhost-user: enable virtio config space messages, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 07/33] virtio: postpone the execution of event_notifier_cleanup function, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 08/33] virtio: improve virtio devices initialization time, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 06/33] qemu: add a cleanup callback function to EventNotifier, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 05/33] contrib/vhost-user-blk: introduce a vhost-user-blk sample application, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 09/33] pci/shpc: Move function to generic header file, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 10/33] vhost-user: fix multiple queue specification, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 11/33] intel-iommu: Redefine macros to enable supporting 48 bit address width, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 14/33] ACPI/unit-test: Add a testcase for RAM allocation in numa node, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 12/33] intel-iommu: Extend address width to 48 bits, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 13/33] hw/pci-bridge: fix QEMU crash because of pcie-root-port,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL 15/33] hw/acpi-build: Make next_base easy to follow, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 16/33] vhost-user-test: fix features mask, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 17/33] vhost-user-test: extract read-guest-mem test from main loop, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 18/33] vhost-user-test: setup virtqueues in all tests, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 19/33] vhost-user-test: make features mask an init_virtio_dev() argument, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 20/33] vhost-user-test: use init_virtio_dev in multiqueue test, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 21/33] vhost: Build temporary section list and deref after commit, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 22/33] vhost: Move log_dirty check, Michael S. Tsirkin, 2018/01/15
- [Qemu-devel] [PULL 24/33] vhost: Merge sections added to temporary list, Michael S. Tsirkin, 2018/01/15