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

From: Bibo Mao

Date: Thu May 07 2026 - 23:08:39 EST




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.

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