Re: [PATCH] KVM: apic: remove unused function apic_lvt_vector()

From: Vitaly Kuznetsov
Date: Mon Feb 17 2020 - 12:02:36 EST


Krish Sadhukhan <krish.sadhukhan@xxxxxxxxxx> writes:

> On 2/12/20 6:37 PM, linmiaohe wrote:
>> From: Miaohe Lin <linmiaohe@xxxxxxxxxx>
>>
>> The function apic_lvt_vector() is unused now, remove it.
>>
>> Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>
>> ---
>> arch/x86/kvm/lapic.c | 5 -----
>> 1 file changed, 5 deletions(-)
>>
>> diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
>> index eafc631d305c..0b563c280784 100644
>> --- a/arch/x86/kvm/lapic.c
>> +++ b/arch/x86/kvm/lapic.c
>> @@ -294,11 +294,6 @@ static inline int apic_lvt_enabled(struct kvm_lapic *apic, int lvt_type)
>> return !(kvm_lapic_get_reg(apic, lvt_type) & APIC_LVT_MASKED);
>> }
>>
>> -static inline int apic_lvt_vector(struct kvm_lapic *apic, int lvt_type)
>> -{
>> - return kvm_lapic_get_reg(apic, lvt_type) & APIC_VECTOR_MASK;
>> -}
>> -
>> static inline int apic_lvtt_oneshot(struct kvm_lapic *apic)
>> {
>> return apic->lapic_timer.timer_mode == APIC_LVT_TIMER_ONESHOT;
>
> There is one place, lapic_timer_int_injected(), where this function be
> used :
>
> ÂÂÂÂÂÂÂ struct kvm_lapic *apic = vcpu->arch.apic;
> -ÂÂÂÂÂÂ u32 reg = kvm_lapic_get_reg(apic, APIC_LVTT);
>
> ÂÂÂ ÂÂÂ if (kvm_apic_hw_enabled(apic)) {
>
> -ÂÂÂ ÂÂÂ ÂÂÂ ÂÂÂ int vec = reg & APIC_VECTOR_MASK;
>
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ int vec = apic_lvt_vector(APIC_LVTT);
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ void *bitmap = apic->regs + APIC_ISR;
>
>
> But since that's the only place I can find, we probably don't need a
> separate function.
>

I like the alternative suggestion more than the original patch)

Also, apic_lvt_enabled() is only used once with APIC_LVTT as the second
argument so I'd suggest we also do:

diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index afcd30d44cbb..d85463ff4a6f 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -289,14 +289,14 @@ static inline void kvm_apic_set_x2apic_id(struct kvm_lapic *apic, u32 id)
recalculate_apic_map(apic->vcpu->kvm);
}

-static inline int apic_lvt_enabled(struct kvm_lapic *apic, int lvt_type)
+static inline int apic_lvtt_enabled(struct kvm_lapic *apic)
{
- return !(kvm_lapic_get_reg(apic, lvt_type) & APIC_LVT_MASKED);
+ return !(kvm_lapic_get_reg(apic, APIC_LVTT) & APIC_LVT_MASKED);
}

-static inline int apic_lvt_vector(struct kvm_lapic *apic, int lvt_type)
+static inline int apic_lvtt_vector(struct kvm_lapic *apic)
{
- return kvm_lapic_get_reg(apic, lvt_type) & APIC_VECTOR_MASK;
+ return kvm_lapic_get_reg(apic, APIC_LVTT) & APIC_VECTOR_MASK;
}

in addition to the above.

--
Vitaly