|
From: | Marcel Apfelbaum |
Subject: | Re: [Qemu-stable] [Qemu-devel] [PATCH] hw/pci-bridge: fix QEMU crash because of pcie-root-port |
Date: | Mon, 15 Jan 2018 18:31:09 +0200 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
On 15/01/2018 17:54, Laszlo Ersek wrote:
On 01/10/18 20:09, Marcel Apfelbaum wrote: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> --- hw/pci-bridge/gen_pcie_root_port.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)In your opinion, can we add: Cc: address@hidden Fixes: 226263fb5cdaa4a4a95f1680fabbc9dd2123fd67 ? (Not sure if a stable branch is already open for 2.11. Commit 226263fb5cdaa appeared in 2.11.) Ah, I'm silly. You CC'd stable up-front. :) So, what about the Fixes tag?
For sure, I wasn't aware of the "Fixes" tag. I'll be sure to use it in the future. Do I need to resend, or Michael can pick the tag?
diff --git a/hw/pci-bridge/gen_pcie_root_port.c b/hw/pci-bridge/gen_pcie_root_port.c index ad4e6aa7ff..0e2f2e8bf1 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,Reviewed-by: Laszlo Ersek <address@hidden>
Appreciated! Thanks, Marcel
Thanks Laszlo
[Prev in Thread] | Current Thread | [Next in Thread] |