Commit 2c106f29 authored by Sean Christopherson's avatar Sean Christopherson Committed by Paolo Bonzini

KVM: Ensure CPU is stable during low level hardware enable/disable

Use the non-raw smp_processor_id() in the low hardware enable/disable
helpers as KVM absolutely relies on the CPU being stable, e.g. KVM would
end up with incorrect state if the task were migrated between accessing
cpus_hardware_enabled and actually enabling/disabling hardware.
Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
Message-Id: <20221130230934.1014142-44-seanjc@google.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent e4aa7f88
...@@ -5097,7 +5097,7 @@ static struct miscdevice kvm_dev = { ...@@ -5097,7 +5097,7 @@ static struct miscdevice kvm_dev = {
static void hardware_enable_nolock(void *junk) static void hardware_enable_nolock(void *junk)
{ {
int cpu = raw_smp_processor_id(); int cpu = smp_processor_id();
int r; int r;
if (cpumask_test_cpu(cpu, cpus_hardware_enabled)) if (cpumask_test_cpu(cpu, cpus_hardware_enabled))
...@@ -5139,7 +5139,7 @@ static int kvm_online_cpu(unsigned int cpu) ...@@ -5139,7 +5139,7 @@ static int kvm_online_cpu(unsigned int cpu)
static void hardware_disable_nolock(void *junk) static void hardware_disable_nolock(void *junk)
{ {
int cpu = raw_smp_processor_id(); int cpu = smp_processor_id();
if (!cpumask_test_cpu(cpu, cpus_hardware_enabled)) if (!cpumask_test_cpu(cpu, cpus_hardware_enabled))
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment