Re: [PATCH] LoongArch: KVM: Move some variable declaration to file paravirt.h

From: Huacai Chen

Date: Sat May 09 2026 - 10:11:33 EST


On Sat, May 9, 2026 at 9:34 AM Bibo Mao <maobibo@xxxxxxxxxxx> wrote:
>
>
>
> On 2026/5/8 下午9:04, Huacai Chen wrote:
> > On Fri, May 8, 2026 at 11:19 AM Bibo Mao <maobibo@xxxxxxxxxxx> wrote:
> >>
> >>
> >>
> >> On 2026/5/8 上午11:11, Huacai Chen wrote:
> >>> 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?
> >> kvm_para.h is shared by hypervisor and guest kernel, paravirt.h is only
> >> used by guest kernel. And option CONFIG_PARAVIRT is useful with guest
> >> kernel, CONFIG_PARAVIRT has no much meaning with hypervisor.
> > If so, paravirt.h seems better to declare these variables.
> yes, paravirt.h seems better than kvm_para.h :)
Applied, thanks.

Huacai
>
> Regards
> Bibo Mao
> >
> > Huacai
> >
> >>
> >> Regards
> >> Bibo Mao
> >>>
> >>> 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
> >>>>>>
> >>>>
> >>
>
>