• Avi Kivity's avatar
    KVM: VMX: Fix kvm_set_shared_msr() called in preemptible context · 2225fd56
    Avi Kivity authored
    kvm_set_shared_msr() may not be called in preemptible context,
    but vmx_set_msr() does so:
    
      BUG: using smp_processor_id() in preemptible [00000000] code: qemu-kvm/22713
      caller is kvm_set_shared_msr+0x32/0xa0 [kvm]
      Pid: 22713, comm: qemu-kvm Not tainted 3.4.0-rc3+ #39
      Call Trace:
       [<ffffffff8131fa82>] debug_smp_processor_id+0xe2/0x100
       [<ffffffffa0328ae2>] kvm_set_shared_msr+0x32/0xa0 [kvm]
       [<ffffffffa03a103b>] vmx_set_msr+0x28b/0x2d0 [kvm_intel]
       ...
    
    Making kvm_set_shared_msr() work in preemptible is cleaner, but
    it's used in the fast path.  Making two variants is overkill, so
    this patch just disables preemption around the call.
    Reported-by: default avatarDave Jones <davej@redhat.com>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
    2225fd56
vmx.c 206 KB