max_vcpu_ids and KVM_CAP_MAX_VCPU_ID are exclusive, i.e. the maximum allowed vcpu_id value is max_vcpu_ids minus one, not max_vcpu_ids.
Fix the sanity checks for KVM_SET_BOOT_CPU_ID and KVM_CAP_MAX_VCPU_ID and the selftests for them (added in series [1]) to fail when bsp_vcpu_id is incorrectly set to max_vcpu_ids, not to a value below max_vcpu_ids. Also clarify that in the documentation of KVM_CAP_MAX_VCPU_ID, in an attempt to make this a bit less confusing. [1] https://lore.kernel.org/all/[email protected]/ Dmytro Maluka (3): KVM: selftests: Fix treating KVM_CAP_MAX_VCPU_ID as inclusive KVM: x86: Fix off-by-one in max_vcpu_ids bounds checks Documentation: KVM: Clarify that KVM_CAP_MAX_VCPU_ID is exclusive Documentation/virt/kvm/api.rst | 13 ++++++++----- arch/x86/kvm/x86.c | 6 +++--- .../selftests/kvm/x86/max_vcpuid_cap_test.c | 17 ++++++++++------- .../testing/selftests/kvm/x86/set_boot_cpu_id.c | 4 ++-- 4 files changed, 23 insertions(+), 17 deletions(-) -- 2.55.0.508.g3f0d502094-goog

