diff options
author | Bibo Mao <maobibo@loongson.cn> | 2025-03-24 11:01:44 +0800 |
---|---|---|
committer | Song Gao <gaosong@loongson.cn> | 2025-04-08 14:44:26 +0800 |
commit | 988ad4ccebb625a47a73977bfac291341a951c6e (patch) | |
tree | 9eae9a12f19276594234b53e8403bbcb0fd26de7 | |
parent | dfaecc04c46d298e9ee81bd0ca96d8754f1c27ed (diff) | |
download | qemu-988ad4ccebb625a47a73977bfac291341a951c6e.zip qemu-988ad4ccebb625a47a73977bfac291341a951c6e.tar.gz qemu-988ad4ccebb625a47a73977bfac291341a951c6e.tar.bz2 |
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 <maobibo@loongson.cn>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20250324030145.3037408-2-maobibo@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
-rw-r--r-- | hw/loongarch/virt.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index e258642..504f875 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; } |