Re: [PATCH] LoongArch: KVM: Move some variable declaration to file paravirt.h
From: Huacai Chen
Date: Thu May 07 2026 - 23:11:52 EST
On Fri, May 8, 2026 at 11:08 AM Bibo Mao <maobibo@xxxxxxxxxxx> wrote:
>
>
>
> On 2026/5/8 上午10:56, Huacai Chen wrote:
> > Hi, Bibo,
> >
> > On Fri, May 8, 2026 at 9:30 AM Bibo Mao <maobibo@xxxxxxxxxxx> wrote:
> >>
> >> Some variables relative with paravirt feature are declared in header file
> >> asm/qspinlock.h, however this file can be included only when option
> >> CONFIG_SMP is on. There is compiling warning if CONFIG_SMP is off since
> >> it is not declared.
> >>
> >> Move these variable declaration to header file asm/paravirt.h to avoid
> >> compiling warning.
> > Have you reproduced the warning? I cannot reproduce it in my
> > environment with the config file from lkp report, so I also cannot
> > confirm whether it is fixed.
> yes, I can reproduce this and it is fixed. The warning is reported from
> sparse tool, rather than LLVM.
> >
> > Another question:
> > Is paravirt.h a better place than kvm_para.h?
> en, here kvm_para.h seems better, will send V2 version in next time.
Frankly, I don't know the difference between the two files. kvm_para.h
is kvm specific and paravirt.h is generic? Or kvm_para.h is the
hypervisor side and paravirt.h is the guest side?
Huacai
>
> Regards
> Bibo Mao
>
> >
> > Huacai
> >
> >>
> >> Fixes: c43dce6f13fb ("LoongArch: KVM: Make vcpu_is_preempted() as a macro rather than function")
> >> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> >> Closes: https://lore.kernel.org/oe-kbuild-all/202605061313.O8Hswm2b-lkp@xxxxxxxxx/
> >> Signed-off-by: Bibo Mao <maobibo@xxxxxxxxxxx>
> >> ---
> >> arch/loongarch/include/asm/paravirt.h | 4 ++++
> >> arch/loongarch/include/asm/qspinlock.h | 5 +----
> >> 2 files changed, 5 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/arch/loongarch/include/asm/paravirt.h b/arch/loongarch/include/asm/paravirt.h
> >> index 0111f0ad5f73..dbc64908017f 100644
> >> --- a/arch/loongarch/include/asm/paravirt.h
> >> +++ b/arch/loongarch/include/asm/paravirt.h
> >> @@ -3,6 +3,10 @@
> >> #define _ASM_LOONGARCH_PARAVIRT_H
> >>
> >> #ifdef CONFIG_PARAVIRT
> >> +#include <linux/jump_label.h>
> >> +DECLARE_STATIC_KEY_FALSE(virt_preempt_key);
> >> +DECLARE_STATIC_KEY_FALSE(virt_spin_lock_key);
> >> +DECLARE_PER_CPU(struct kvm_steal_time, steal_time);
> >>
> >> int __init pv_ipi_init(void);
> >> int __init pv_time_init(void);
> >> diff --git a/arch/loongarch/include/asm/qspinlock.h b/arch/loongarch/include/asm/qspinlock.h
> >> index 0ee15b3b3937..fbfc6be82f26 100644
> >> --- a/arch/loongarch/include/asm/qspinlock.h
> >> +++ b/arch/loongarch/include/asm/qspinlock.h
> >> @@ -3,12 +3,9 @@
> >> #define _ASM_LOONGARCH_QSPINLOCK_H
> >>
> >> #include <asm/kvm_para.h>
> >> -#include <linux/jump_label.h>
> >> +#include <asm/paravirt.h>
> >>
> >> #ifdef CONFIG_PARAVIRT
> >> -DECLARE_STATIC_KEY_FALSE(virt_preempt_key);
> >> -DECLARE_STATIC_KEY_FALSE(virt_spin_lock_key);
> >> -DECLARE_PER_CPU(struct kvm_steal_time, steal_time);
> >>
> >> #define virt_spin_lock virt_spin_lock
> >>
> >>
> >> base-commit: 74fe02ce122a6103f207d29fafc8b3a53de6abaf
> >> --
> >> 2.39.3
> >>
>