0014-KVM-x86-remove-SMRAM-address-space-if-SMM-is-not-sup.patch 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. From 8f5e12c8768ecff91ccf335e2242ab64482c01fb Mon Sep 17 00:00:00 2001
  2. From: Paolo Bonzini <[email protected]>
  3. Date: Tue, 25 Oct 2022 15:47:25 +0300
  4. Subject: [PATCH] KVM: x86: remove SMRAM address space if SMM is not supported
  5. If CONFIG_KVM_SMM is not defined HF_SMM_MASK will always be zero, and
  6. we can spare userspace the hassle of setting up the SMRAM address space
  7. simply by reporting that only one address space is supported.
  8. Signed-off-by: Paolo Bonzini <[email protected]>
  9. ---
  10. arch/x86/include/asm/kvm_host.h | 13 ++++++++-----
  11. 1 file changed, 8 insertions(+), 5 deletions(-)
  12. diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
  13. index 3f6a31175db1..dcaa0b43baef 100644
  14. --- a/arch/x86/include/asm/kvm_host.h
  15. +++ b/arch/x86/include/asm/kvm_host.h
  16. @@ -1988,11 +1988,14 @@ enum {
  17. #define HF_SMM_MASK (1 << 6)
  18. #define HF_SMM_INSIDE_NMI_MASK (1 << 7)
  19. -#define __KVM_VCPU_MULTIPLE_ADDRESS_SPACE
  20. -#define KVM_ADDRESS_SPACE_NUM 2
  21. -
  22. -#define kvm_arch_vcpu_memslots_id(vcpu) ((vcpu)->arch.hflags & HF_SMM_MASK ? 1 : 0)
  23. -#define kvm_memslots_for_spte_role(kvm, role) __kvm_memslots(kvm, (role).smm)
  24. +#ifdef CONFIG_KVM_SMM
  25. +# define __KVM_VCPU_MULTIPLE_ADDRESS_SPACE
  26. +# define KVM_ADDRESS_SPACE_NUM 2
  27. +# define kvm_arch_vcpu_memslots_id(vcpu) ((vcpu)->arch.hflags & HF_SMM_MASK ? 1 : 0)
  28. +# define kvm_memslots_for_spte_role(kvm, role) __kvm_memslots(kvm, (role).smm)
  29. +#else
  30. +# define kvm_memslots_for_spte_role(kvm, role) __kvm_memslots(kvm, 0)
  31. +#endif
  32. #define KVM_ARCH_WANT_MMU_NOTIFIER
  33. --
  34. 2.38.1