Projects
Eulaceura:Mainline:GA
qemu
_service:obs_scm:arm-virt-Require-mc-has_hotplu...
Sign Up
Log In
Username
Password
Sorry, you are not authorized to perform this action.
×
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:arm-virt-Require-mc-has_hotpluggable_cpus-for-cold-p.patch of Package qemu
From 519699c61eeb980bb7d7f443eb95c0406aae82da Mon Sep 17 00:00:00 2001 From: Keqian Zhu <zhukeqian1@huawei.com> Date: Tue, 26 Mar 2024 23:05:39 +0800 Subject: [PATCH] arm/virt: Require mc->has_hotpluggable_cpus for cold-plugged vcpu Cold-plugged vCPU also need mc->has_hotpluggable_cpus. Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com> --- hw/arm/virt.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 00e57f2d75..73b29c7f73 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -3179,16 +3179,6 @@ static void virt_cpu_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev, CPUState *cs = CPU(dev); CPUArchId *cpu_slot; - if (dev->hotplugged && !vms->acpi_dev) { - error_setg(errp, "GED acpi device does not exists"); - return; - } - - if (dev->hotplugged && !mc->has_hotpluggable_cpus) { - error_setg(errp, "CPU hotplug not supported on this machine"); - return; - } - /* sanity check the cpu */ if (!object_dynamic_cast(OBJECT(cpu), ms->cpu_type)) { error_setg(errp, "Invalid CPU type, expected cpu type: '%s'", @@ -3222,6 +3212,17 @@ static void virt_cpu_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev, cs->cpu_index = virt_get_cpu_id_from_cpu_topo(ms, dev); + /* Except for cold-booted vCPUs, this should check presence of ACPI GED */ + if (cs->cpu_index >= ms->smp.cpus && !vms->acpi_dev) { + error_setg(errp, "GED acpi device does not exists"); + return; + } + + if (cs->cpu_index >= ms->smp.cpus && !mc->has_hotpluggable_cpus) { + error_setg(errp, "CPU [cold|hot]plug not supported on this machine"); + return; + } + cpu_slot = virt_find_cpu_slot(ms, cs->cpu_index); if (qemu_present_cpu(CPU(cpu_slot->cpu))) { error_setg(errp, "cpu(id%d=%d:%d:%d:%d) with arch-id %" PRIu64 " exist", -- 2.27.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2