From: yang.zhang Date: Tue, 9 Apr 2024 01:44:45 +0000 (+0800) Subject: hw/intc/riscv_aplic: APLICs should add child earlier than realize X-Git-Tag: v7.2.12~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b73e3712a39d53650fb4e3d650e6bf5b94431f41;p=thirdparty%2Fqemu.git hw/intc/riscv_aplic: APLICs should add child earlier than realize Since only root APLICs can have hw IRQ lines, aplic->parent should be initialized first. Fixes: e8f79343cf ("hw/intc: Add RISC-V AIA APLIC device emulation") Reviewed-by: Daniel Henrique Barboza Signed-off-by: yang.zhang Cc: qemu-stable Message-ID: <20240409014445.278-1-gaoshanliukou@163.com> Signed-off-by: Alistair Francis (cherry picked from commit c76b121840c6ca79dc6305a5f4bcf17c72217d9c) Signed-off-by: Michael Tokarev --- diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c index cfd007e629c..961caff7b60 100644 --- a/hw/intc/riscv_aplic.c +++ b/hw/intc/riscv_aplic.c @@ -957,13 +957,13 @@ DeviceState *riscv_aplic_create(hwaddr addr, hwaddr size, qdev_prop_set_bit(dev, "msimode", msimode); qdev_prop_set_bit(dev, "mmode", mmode); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, addr); - if (parent) { riscv_aplic_add_child(parent, dev); } + sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, addr); + if (!msimode) { for (i = 0; i < num_harts; i++) { CPUState *cpu = qemu_get_cpu(hartid_base + i);