Skip to content
  • Wanpeng Li's avatar
    KVM: nVMX: Fix using __this_cpu_read() in preemptible context · 541e886f
    Wanpeng Li authored
     BUG: using __this_cpu_read() in preemptible [00000000] code: qemu-system-x86/4590
      caller is nested_vmx_enter_non_root_mode+0xebd/0x1790 [kvm_intel]
      CPU: 4 PID: 4590 Comm: qemu-system-x86 Tainted: G           OE     5.1.0-rc4+ #1
    
    
      Call Trace:
       dump_stack+0x67/0x95
       __this_cpu_preempt_check+0xd2/0xe0
       nested_vmx_enter_non_root_mode+0xebd/0x1790 [kvm_intel]
       nested_vmx_run+0xda/0x2b0 [kvm_intel]
       handle_vmlaunch+0x13/0x20 [kvm_intel]
       vmx_handle_exit+0xbd/0x660 [kvm_intel]
       kvm_arch_vcpu_ioctl_run+0xa2c/0x1e50 [kvm]
       kvm_vcpu_ioctl+0x3ad/0x6d0 [kvm]
       do_vfs_ioctl+0xa5/0x6e0
       ksys_ioctl+0x6d/0x80
       __x64_sys_ioctl+0x1a/0x20
       do_syscall_64+0x6f/0x6c0
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Accessing per-cpu variable should disable preemption, this patch extends the
    preemption disable region for __this_cpu_read().
    
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: default avatarWanpeng Li <wanpengli@tencent.com>
    Fixes: 52017608
    
     ("KVM: nVMX: add option to perform early consistency checks via H/W")
    Cc: stable@vger.kernel.org
    Reviewed-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    541e886f