arch/loongarch/include/asm/paravirt.h | 4 ++++ arch/loongarch/include/asm/qspinlock.h | 5 +---- 2 files changed, 5 insertions(+), 4 deletions(-)
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.
Fixes: c43dce6f13fb ("LoongArch: KVM: Make vcpu_is_preempted() as a macro rather than function")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202605061313.O8Hswm2b-lkp@intel.com/
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
---
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
Hi, Bibo,
On Fri, May 8, 2026 at 9:30 AM Bibo Mao <maobibo@loongson.cn> 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.
Another question:
Is paravirt.h a better place than kvm_para.h?
Huacai
>
> Fixes: c43dce6f13fb ("LoongArch: KVM: Make vcpu_is_preempted() as a macro rather than function")
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202605061313.O8Hswm2b-lkp@intel.com/
> Signed-off-by: Bibo Mao <maobibo@loongson.cn>
> ---
> 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
>
On 2026/5/8 上午10:56, Huacai Chen wrote:
> Hi, Bibo,
>
> On Fri, May 8, 2026 at 9:30 AM Bibo Mao <maobibo@loongson.cn> 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.
Regards
Bibo Mao
>
> Huacai
>
>>
>> Fixes: c43dce6f13fb ("LoongArch: KVM: Make vcpu_is_preempted() as a macro rather than function")
>> Reported-by: kernel test robot <lkp@intel.com>
>> Closes: https://lore.kernel.org/oe-kbuild-all/202605061313.O8Hswm2b-lkp@intel.com/
>> Signed-off-by: Bibo Mao <maobibo@loongson.cn>
>> ---
>> 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
>>
On Fri, May 8, 2026 at 11:08 AM Bibo Mao <maobibo@loongson.cn> wrote:
>
>
>
> On 2026/5/8 上午10:56, Huacai Chen wrote:
> > Hi, Bibo,
> >
> > On Fri, May 8, 2026 at 9:30 AM Bibo Mao <maobibo@loongson.cn> 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@intel.com>
> >> Closes: https://lore.kernel.org/oe-kbuild-all/202605061313.O8Hswm2b-lkp@intel.com/
> >> Signed-off-by: Bibo Mao <maobibo@loongson.cn>
> >> ---
> >> 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
> >>
>
On 2026/5/8 上午11:11, Huacai Chen wrote:
> On Fri, May 8, 2026 at 11:08 AM Bibo Mao <maobibo@loongson.cn> wrote:
>>
>>
>>
>> On 2026/5/8 上午10:56, Huacai Chen wrote:
>>> Hi, Bibo,
>>>
>>> On Fri, May 8, 2026 at 9:30 AM Bibo Mao <maobibo@loongson.cn> 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.
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@intel.com>
>>>> Closes: https://lore.kernel.org/oe-kbuild-all/202605061313.O8Hswm2b-lkp@intel.com/
>>>> Signed-off-by: Bibo Mao <maobibo@loongson.cn>
>>>> ---
>>>> 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
>>>>
>>
On Fri, May 8, 2026 at 11:19 AM Bibo Mao <maobibo@loongson.cn> wrote:
>
>
>
> On 2026/5/8 上午11:11, Huacai Chen wrote:
> > On Fri, May 8, 2026 at 11:08 AM Bibo Mao <maobibo@loongson.cn> wrote:
> >>
> >>
> >>
> >> On 2026/5/8 上午10:56, Huacai Chen wrote:
> >>> Hi, Bibo,
> >>>
> >>> On Fri, May 8, 2026 at 9:30 AM Bibo Mao <maobibo@loongson.cn> 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.
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@intel.com>
> >>>> Closes: https://lore.kernel.org/oe-kbuild-all/202605061313.O8Hswm2b-lkp@intel.com/
> >>>> Signed-off-by: Bibo Mao <maobibo@loongson.cn>
> >>>> ---
> >>>> 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
> >>>>
> >>
>
On 2026/5/8 下午9:04, Huacai Chen wrote:
> On Fri, May 8, 2026 at 11:19 AM Bibo Mao <maobibo@loongson.cn> wrote:
>>
>>
>>
>> On 2026/5/8 上午11:11, Huacai Chen wrote:
>>> On Fri, May 8, 2026 at 11:08 AM Bibo Mao <maobibo@loongson.cn> wrote:
>>>>
>>>>
>>>>
>>>> On 2026/5/8 上午10:56, Huacai Chen wrote:
>>>>> Hi, Bibo,
>>>>>
>>>>> On Fri, May 8, 2026 at 9:30 AM Bibo Mao <maobibo@loongson.cn> 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 :)
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@intel.com>
>>>>>> Closes: https://lore.kernel.org/oe-kbuild-all/202605061313.O8Hswm2b-lkp@intel.com/
>>>>>> Signed-off-by: Bibo Mao <maobibo@loongson.cn>
>>>>>> ---
>>>>>> 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
>>>>>>
>>>>
>>
On Sat, May 9, 2026 at 9:34 AM Bibo Mao <maobibo@loongson.cn> wrote:
>
>
>
> On 2026/5/8 下午9:04, Huacai Chen wrote:
> > On Fri, May 8, 2026 at 11:19 AM Bibo Mao <maobibo@loongson.cn> wrote:
> >>
> >>
> >>
> >> On 2026/5/8 上午11:11, Huacai Chen wrote:
> >>> On Fri, May 8, 2026 at 11:08 AM Bibo Mao <maobibo@loongson.cn> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On 2026/5/8 上午10:56, Huacai Chen wrote:
> >>>>> Hi, Bibo,
> >>>>>
> >>>>> On Fri, May 8, 2026 at 9:30 AM Bibo Mao <maobibo@loongson.cn> 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@intel.com>
> >>>>>> Closes: https://lore.kernel.org/oe-kbuild-all/202605061313.O8Hswm2b-lkp@intel.com/
> >>>>>> Signed-off-by: Bibo Mao <maobibo@loongson.cn>
> >>>>>> ---
> >>>>>> 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
> >>>>>>
> >>>>
> >>
>
>
© 2016 - 2026 Red Hat, Inc.