[RFC PATCH v7 04/37] KVM: lapic: Rename VEC_POS/REG_POS macro usages

From: Neeraj Upadhyay
Date: Tue Jun 10 2025 - 13:57:31 EST


In preparation for moving most of the KVM's lapic helpers which
use VEC_POS/REG_POS macros to common apic header for use in Secure
AVIC apic driver, rename all VEC_POS/REG_POS macro usages to
APIC_VECTOR_TO_BIT_NUMBER/APIC_VECTOR_TO_REG_OFFSET and remove
VEC_POS/REG_POS.

While at it, clean up line wrap in find_highest_vector().

No functional change intended.

Signed-off-by: Neeraj Upadhyay <Neeraj.Upadhyay@xxxxxxx>
---
Changes since v6:

- New change.

arch/x86/kvm/lapic.c | 15 +++++++--------
arch/x86/kvm/lapic.h | 7 ++-----
2 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index aa645b5cf013..096db088d6b7 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -114,7 +114,7 @@ static __always_inline void kvm_lapic_set_reg64(struct kvm_lapic *apic,

static inline int apic_test_vector(int vec, void *bitmap)
{
- return test_bit(VEC_POS(vec), bitmap + REG_POS(vec));
+ return test_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFFSET(vec));
}

bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector)
@@ -621,9 +621,8 @@ static int find_highest_vector(void *bitmap)
int vec;
u32 *reg;

- for (vec = MAX_APIC_VECTOR - APIC_VECTORS_PER_REG;
- vec >= 0; vec -= APIC_VECTORS_PER_REG) {
- reg = bitmap + REG_POS(vec);
+ for (vec = MAX_APIC_VECTOR - APIC_VECTORS_PER_REG; vec >= 0; vec -= APIC_VECTORS_PER_REG) {
+ reg = bitmap + APIC_VECTOR_TO_REG_OFFSET(vec);
if (*reg)
return __fls(*reg) + vec;
}
@@ -638,7 +637,7 @@ static u8 count_vectors(void *bitmap)
u8 count = 0;

for (vec = 0; vec < MAX_APIC_VECTOR; vec += APIC_VECTORS_PER_REG) {
- reg = bitmap + REG_POS(vec);
+ reg = bitmap + APIC_VECTOR_TO_REG_OFFSET(vec);
count += hweight32(*reg);
}

@@ -736,12 +735,12 @@ EXPORT_SYMBOL_GPL(kvm_apic_clear_irr);

static inline void *apic_vector_to_isr(int vec, struct kvm_lapic *apic)
{
- return apic->regs + APIC_ISR + REG_POS(vec);
+ return apic->regs + APIC_ISR + APIC_VECTOR_TO_REG_OFFSET(vec);
}

static inline void apic_set_isr(int vec, struct kvm_lapic *apic)
{
- if (__test_and_set_bit(VEC_POS(vec), apic_vector_to_isr(vec, apic)))
+ if (__test_and_set_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), apic_vector_to_isr(vec, apic)))
return;

/*
@@ -784,7 +783,7 @@ static inline int apic_find_highest_isr(struct kvm_lapic *apic)

static inline void apic_clear_isr(int vec, struct kvm_lapic *apic)
{
- if (!__test_and_clear_bit(VEC_POS(vec), apic_vector_to_isr(vec, apic)))
+ if (!__test_and_clear_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), apic_vector_to_isr(vec, apic)))
return;

/*
diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
index 56369d331bfc..eb9bda52948c 100644
--- a/arch/x86/kvm/lapic.h
+++ b/arch/x86/kvm/lapic.h
@@ -145,17 +145,14 @@ void kvm_lapic_exit(void);

u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic);

-#define VEC_POS(v) APIC_VECTOR_TO_BIT_NUMBER(v)
-#define REG_POS(v) APIC_VECTOR_TO_REG_OFFSET(v)
-
static inline void kvm_lapic_clear_vector(int vec, void *bitmap)
{
- clear_bit(VEC_POS(vec), bitmap + REG_POS(vec));
+ clear_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFFSET(vec));
}

static inline void kvm_lapic_set_vector(int vec, void *bitmap)
{
- set_bit(VEC_POS(vec), bitmap + REG_POS(vec));
+ set_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFFSET(vec));
}

static inline void kvm_lapic_set_irr(int vec, struct kvm_lapic *apic)
--
2.34.1