1. 15 12月, 2020 4 次提交
  2. 12 12月, 2020 1 次提交
    • P
      KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits · 39485ed9
      Paolo Bonzini 提交于
      Until commit e7c587da ("x86/speculation: Use synthetic bits for
      IBRS/IBPB/STIBP"), KVM was testing both Intel and AMD CPUID bits before
      allowing the guest to write MSR_IA32_SPEC_CTRL and MSR_IA32_PRED_CMD.
      Testing only Intel bits on VMX processors, or only AMD bits on SVM
      processors, fails if the guests are created with the "opposite" vendor
      as the host.
      
      While at it, also tweak the host CPU check to use the vendor-agnostic
      feature bit X86_FEATURE_IBPB, since we only care about the availability
      of the MSR on the host here and not about specific CPUID bits.
      
      Fixes: e7c587da ("x86/speculation: Use synthetic bits for IBRS/IBPB/STIBP")
      Cc: stable@vger.kernel.org
      Reported-by: NDenis V. Lunev <den@openvz.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      39485ed9
  3. 17 11月, 2020 2 次提交
    • P
      KVM: SVM: check CR4 changes against vcpu->arch · dc924b06
      Paolo Bonzini 提交于
      Similarly to what vmx/vmx.c does, use vcpu->arch.cr4 to check if CR4
      bits PGE, PKE and OSXSAVE have changed.  When switching between VMCB01
      and VMCB02, CPUID has to be adjusted every time if CR4.PKE or CR4.OSXSAVE
      change; without this patch, instead, CR4 would be checked against the
      previous value for L2 on vmentry, and against the previous value for
      L1 on vmexit, and CPUID would not be updated.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      dc924b06
    • C
      KVM: SVM: Move asid to vcpu_svm · 7e8e6eed
      Cathy Avery 提交于
      KVM does not have separate ASIDs for L1 and L2; either the nested
      hypervisor and nested guests share a single ASID, or on older processor
      the ASID is used only to implement TLB flushing.
      
      Either way, ASIDs are handled at the VM level.  In preparation
      for having different VMCBs passed to VMLOAD/VMRUN/VMSAVE for L1 and
      L2, store the current ASID to struct vcpu_svm and only move it to
      the VMCB in svm_vcpu_run.  This way, TLB flushes can be applied
      no matter which VMCB will be active during the next svm_vcpu_run.
      Signed-off-by: NCathy Avery <cavery@redhat.com>
      Message-Id: <20201011184818.3609-2-cavery@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      7e8e6eed
  4. 15 11月, 2020 3 次提交
  5. 13 11月, 2020 1 次提交
  6. 22 10月, 2020 2 次提交
  7. 28 9月, 2020 20 次提交
  8. 26 9月, 2020 1 次提交
  9. 13 9月, 2020 1 次提交
    • M
      KVM: nSVM: more strict SMM checks when returning to nested guest · 3ebb5d26
      Maxim Levitsky 提交于
      * check that guest is 64 bit guest, otherwise the SVM related fields
        in the smm state area are not defined
      
      * If the SMM area indicates that SMM interrupted a running guest,
        check that EFER.SVME which is also saved in this area is set, otherwise
        the guest might have tampered with SMM save area, and so indicate
        emulation failure which should triple fault the guest.
      
      * Check that that guest CPUID supports SVM (due to the same issue as above)
      Signed-off-by: NMaxim Levitsky <mlevitsk@redhat.com>
      Message-Id: <20200827162720.278690-4-mlevitsk@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      3ebb5d26
  10. 12 9月, 2020 1 次提交
  11. 10 9月, 2020 1 次提交
  12. 08 9月, 2020 1 次提交
  13. 24 8月, 2020 1 次提交
  14. 31 7月, 2020 1 次提交