kvm_arch_check_processor_compat() needn't be called with interrupt disabled, as it only reads some CRs/MSRs which won't be clobbered by interrupt handlers or softirq. What really needed is disabling preemption. No additional check is added because if CONFIG_DEBUG_PREEMPT is enabled, smp_processor_id() (right above the WARN_ON()) can help to detect any violation. Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx> --- arch/x86/kvm/x86.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index aa09c8792134..a80e3b0c11a8 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -11384,8 +11384,6 @@ int kvm_arch_check_processor_compat(void) { struct cpuinfo_x86 *c = &cpu_data(smp_processor_id()); - WARN_ON(!irqs_disabled()); - if (__cr4_reserved_bits(cpu_has, c) != __cr4_reserved_bits(cpu_has, &boot_cpu_data)) return -EIO; -- 2.25.1