[PATCH 00/10] KVM: Avoid literal numbers as return values

From: Juergen Gross

Date: Fri Dec 05 2025 - 02:45:48 EST


This series is the first part of replacing the use of literal numbers
(0 and 1) as return values with either true/false or with defines.

This work is a prelude of getting rid of the magic value "1" for
"return to guest". I started in x86 KVM host code doing that and soon
stumbled over lots of other use cases of the magic "1" as return value,
especially in MSR emulation where a comment even implied this "1" was
due to the "return to guest" semantics.

A detailed analysis of all related code paths revealed that there was
indeed a rather clean interface between the functions using the MSR
emulation "1" and those using the "return to guest" "1".

A few functions just using "0" and "1" instead of bool are changed,
tooi (patches 1-4).

The rest of the series is cleaning up the MSR emulation code by using
new proper defines for return values 0 and 1.

The whole series should not result in any functional change.

Juergen Gross (10):
KVM: Switch coalesced_mmio_in_range() to return bool
KVM/x86: Use bool for the err parameter of kvm_complete_insn_gp()
KVM/x86: Let x86_emulate_ops.set_cr() return a bool
KVM/x86: Let x86_emulate_ops.set_dr() return a bool
KVM/x86: Add KVM_MSR_RET_* defines for values 0 and 1
KVM/x86: Use defines for APIC related MSR emulation
KVM/x86: Use defines for Hyper-V related MSR emulation
KVM/x86: Use defines for VMX related MSR emulation
KVM/x86: Use defines for SVM related MSR emulation
KVM/x86: Use defines for common related MSR emulation

arch/x86/include/asm/kvm_host.h | 14 +-
arch/x86/kvm/emulate.c | 2 +-
arch/x86/kvm/hyperv.c | 110 +++++++-------
arch/x86/kvm/kvm_emulate.h | 4 +-
arch/x86/kvm/lapic.c | 48 +++----
arch/x86/kvm/mtrr.c | 12 +-
arch/x86/kvm/pmu.c | 12 +-
arch/x86/kvm/smm.c | 2 +-
arch/x86/kvm/svm/pmu.c | 12 +-
arch/x86/kvm/svm/svm.c | 54 +++----
arch/x86/kvm/vmx/main.c | 2 +-
arch/x86/kvm/vmx/nested.c | 18 +--
arch/x86/kvm/vmx/pmu_intel.c | 20 +--
arch/x86/kvm/vmx/tdx.c | 18 +--
arch/x86/kvm/vmx/tdx.h | 2 +-
arch/x86/kvm/vmx/vmx.c | 122 ++++++++--------
arch/x86/kvm/x86.c | 246 ++++++++++++++++----------------
arch/x86/kvm/x86.h | 10 +-
arch/x86/kvm/xen.c | 14 +-
virt/kvm/coalesced_mmio.c | 14 +-
20 files changed, 372 insertions(+), 364 deletions(-)

--
2.51.0