[PATCH v3 4/5] KVM: x86: Reverse the polarity of efer_reserved_bits

From: Yosry Ahmed

Date: Mon Jul 13 2026 - 14:12:18 EST


In preparation for moving efer_reserved_bits into kvm_caps, reverse its
polarity and make it efer_supported_bits, to be more consistent with
other fields in kvm_caps.

No functional change intended.

Reviewed-by: Nikolay Borisov <nik.borisov@xxxxxxxx>
Signed-off-by: Yosry Ahmed <yosry@xxxxxxxxxx>
---
arch/x86/kvm/msrs.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kvm/msrs.c b/arch/x86/kvm/msrs.c
index a7394bdae0295..8e33b87b5e8f0 100644
--- a/arch/x86/kvm/msrs.c
+++ b/arch/x86/kvm/msrs.c
@@ -19,7 +19,7 @@ bool __read_mostly report_ignored_msrs = true;
module_param(report_ignored_msrs, bool, 0644);
EXPORT_SYMBOL_FOR_KVM_INTERNAL(report_ignored_msrs);

-static u64 __read_mostly efer_reserved_bits;
+static u64 __read_mostly efer_supported_bits;

#define MAX_IO_MSRS 256

@@ -605,7 +605,7 @@ static bool __kvm_valid_efer(struct kvm_vcpu *vcpu, u64 efer)
}
bool kvm_valid_efer(struct kvm_vcpu *vcpu, u64 efer)
{
- if (efer & efer_reserved_bits)
+ if (efer & ~efer_supported_bits)
return false;

return __kvm_valid_efer(vcpu, efer);
@@ -618,7 +618,7 @@ static int set_efer(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
u64 efer = msr_info->data;
int r;

- if (efer & efer_reserved_bits)
+ if (efer & ~efer_supported_bits)
return 1;

if (!msr_info->host_initiated) {
@@ -652,13 +652,13 @@ static int set_efer(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
void kvm_init_efer_bits(void)
{
/* Enable syscall by default because its emulated by KVM */
- efer_reserved_bits = ~((u64)EFER_SCE);
+ efer_supported_bits = (u64)EFER_SCE;
}
EXPORT_SYMBOL_FOR_KVM_INTERNAL(kvm_init_efer_bits);

void kvm_enable_efer_bits(u64 mask)
{
- efer_reserved_bits &= ~mask;
+ efer_supported_bits |= mask;
}
EXPORT_SYMBOL_FOR_KVM_INTERNAL(kvm_enable_efer_bits);

--
2.55.0.141.g00534a21ce-goog