lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 17 Feb 2020 18:02:27 +0100
From:   Vitaly Kuznetsov <vkuznets@...hat.com>
To:     Krish Sadhukhan <krish.sadhukhan@...cle.com>,
        linmiaohe <linmiaohe@...wei.com>
Cc:     kvm@...r.kernel.org, linux-kernel@...r.kernel.org, x86@...nel.org,
        pbonzini@...hat.com, rkrcmar@...hat.com,
        sean.j.christopherson@...el.com, wanpengli@...cent.com,
        jmattson@...gle.com, joro@...tes.org, tglx@...utronix.de,
        mingo@...hat.com, bp@...en8.de, hpa@...or.com
Subject: Re: [PATCH] KVM: apic: remove unused function apic_lvt_vector()

Krish Sadhukhan <krish.sadhukhan@...cle.com> writes:

> On 2/12/20 6:37 PM, linmiaohe wrote:
>> From: Miaohe Lin <linmiaohe@...wei.com>
>>
>> The function apic_lvt_vector() is unused now, remove it.
>>
>> Signed-off-by: Miaohe Lin <linmiaohe@...wei.com>
>> ---
>>   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

Powered by blists - more mailing lists