From: Bibo Mao Date: Mon, 24 Mar 2025 03:01:44 +0000 (+0800) Subject: hw/loongarch/virt: Fix cpuslot::cpu set at last in virt_cpu_plug() X-Git-Tag: v10.0.0-rc3~5^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=988ad4ccebb625a47a73977bfac291341a951c6e;p=thirdparty%2Fqemu.git hw/loongarch/virt: Fix cpuslot::cpu set at last in virt_cpu_plug() In function virt_cpu_plug(), Object cpuslot::cpu is set at last only when there is no any error, otherwise it is problematic that cpuslot::cpu is set in advance however it returns because of error. Fixes: ab9935d2991e (hw/loongarch/virt: Implement cpu plug interface) Signed-off-by: Bibo Mao Reviewed-by: Markus Armbruster Message-Id: <20250324030145.3037408-2-maobibo@loongson.cn> Signed-off-by: Song Gao --- diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index e25864214f..504f8755a0 100644 --- a/hw/loongarch/virt.c +++ b/hw/loongarch/virt.c @@ -973,8 +973,6 @@ static void virt_cpu_plug(HotplugHandler *hotplug_dev, LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev); Error *err = NULL; - cpu_slot = virt_find_cpu_slot(MACHINE(lvms), cpu->phy_id); - cpu_slot->cpu = CPU(dev); if (lvms->ipi) { hotplug_handler_plug(HOTPLUG_HANDLER(lvms->ipi), dev, &err); if (err) { @@ -998,6 +996,8 @@ static void virt_cpu_plug(HotplugHandler *hotplug_dev, } } + cpu_slot = virt_find_cpu_slot(MACHINE(lvms), cpu->phy_id); + cpu_slot->cpu = CPU(dev); return; }