diff options
author | Igor Mammedov | 2020-12-07 15:07:39 +0100 |
---|---|---|
committer | Michael S. Tsirkin | 2020-12-09 19:04:17 +0100 |
commit | 7ed3e1ebcbe542c74c32e842689af60d644fcee6 (patch) | |
tree | d7b70ac0bdf7785ce5ad3716351de736be5f0ebf | |
parent | x86: ich9: factor out "guest_cpu_hotplug_features" (diff) | |
download | qemu-7ed3e1ebcbe542c74c32e842689af60d644fcee6.tar.gz qemu-7ed3e1ebcbe542c74c32e842689af60d644fcee6.tar.xz qemu-7ed3e1ebcbe542c74c32e842689af60d644fcee6.zip |
x86: ich9: let firmware negotiate 'CPU hot-unplug with SMI' feature
Keep CPU hotunplug with SMI disabled on 5.2 and older and enable
it by default on newer machine types.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20201207140739.3829993-9-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | hw/i386/pc.c | 4 | ||||
-rw-r--r-- | hw/isa/lpc_ich9.c | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 675e15c0aa..9e29f3792b 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -97,7 +97,9 @@ #include "trace.h" #include CONFIG_DEVICES -GlobalProperty pc_compat_5_2[] = {}; +GlobalProperty pc_compat_5_2[] = { + { "ICH9-LPC", "x-smi-cpu-hotunplug", "off" }, +}; const size_t pc_compat_5_2_len = G_N_ELEMENTS(pc_compat_5_2); GlobalProperty pc_compat_5_1[] = { diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index da80430144..d3145bf014 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -392,6 +392,12 @@ static void smi_features_ok_callback(void *opaque) return; } + if (guest_cpu_hotplug_features == + BIT_ULL(ICH9_LPC_SMI_F_CPU_HOT_UNPLUG_BIT)) { + /* cpu hot-unplug is unsupported without cpu-hotplug */ + return; + } + /* valid feature subset requested, lock it down, report success */ lpc->smi_negotiated_features = guest_features; lpc->smi_features_ok = 1; @@ -774,7 +780,7 @@ static Property ich9_lpc_properties[] = { DEFINE_PROP_BIT64("x-smi-cpu-hotplug", ICH9LPCState, smi_host_features, ICH9_LPC_SMI_F_CPU_HOTPLUG_BIT, true), DEFINE_PROP_BIT64("x-smi-cpu-hotunplug", ICH9LPCState, smi_host_features, - ICH9_LPC_SMI_F_CPU_HOT_UNPLUG_BIT, false), + ICH9_LPC_SMI_F_CPU_HOT_UNPLUG_BIT, true), DEFINE_PROP_END_OF_LIST(), }; |