From d2e155a75b056cf56c043adf3651c8d0e607ec82 Mon Sep 17 00:00:00 2001 From: ZhenXing Zhu Date: Fri, 29 May 2026 06:33:55 +0000 Subject: [PATCH 1/4] Revert "KVM: riscv: selftests: Move sbi definitions to its own header file" dist inclusion category: cleanup bugzilla: https://github.com/RVCK-Project/rvck/issues/290 -------------------------------- This reverts commit 7ecf0f611aeffd856662d76fd17c38a4dde3ff78. The original backport only modified steal_time.c but missed the key changes to processor.h, sbi.h, and ucall.h. Upstream has a complete version of this commit which will be cherry-picked next. Signed-off-by: ZhenXing Zhu --- tools/testing/selftests/kvm/steal_time.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c index 9999173b05453..4be5a1ffa06aa 100644 --- a/tools/testing/selftests/kvm/steal_time.c +++ b/tools/testing/selftests/kvm/steal_time.c @@ -11,9 +11,7 @@ #include #include #include -#ifdef __riscv -#include "sbi.h" -#else +#ifndef __riscv #include #endif From c89e70802fde3dffb9e8c3e3d2158568a25d9725 Mon Sep 17 00:00:00 2001 From: ZhenXing Zhu Date: Fri, 29 May 2026 06:35:54 +0000 Subject: [PATCH 2/4] KVM: riscv: selftests: Move sbi definitions to its own header file mainline inclusion from Linux 6.10-rc1 commit 9408a23fac62d31de067bd2b0099eb9151395345 category: feature bugzilla: https://github.com/RVCK-Project/rvck/issues/290 -------------------------------- The SBI definitions will continue to grow. Move the sbi related definitions to its own header file from processor.h Suggested-by: Andrew Jones Reviewed-by: Andrew Jones Signed-off-by: Atish Patra Reviewed-by: Anup Patel Link: https://lore.kernel.org/r/20240420151741.962500-18-atishp@rivosinc.com Signed-off-by: Anup Patel [Resolve conflicts with existing backported SBI PMU definitions and keep local SATP mode macros. - ZhenXing Zhu] Signed-off-by: Fangyu Yu Signed-off-by: ZhenXing Zhu --- .../selftests/kvm/include/riscv/processor.h | 18 ------------------ .../testing/selftests/kvm/include/riscv/sbi.h | 1 + .../selftests/kvm/include/riscv/ucall.h | 1 + tools/testing/selftests/kvm/steal_time.c | 4 +++- 4 files changed, 5 insertions(+), 19 deletions(-) diff --git a/tools/testing/selftests/kvm/include/riscv/processor.h b/tools/testing/selftests/kvm/include/riscv/processor.h index aab7618373a3e..366a560b6469a 100644 --- a/tools/testing/selftests/kvm/include/riscv/processor.h +++ b/tools/testing/selftests/kvm/include/riscv/processor.h @@ -167,24 +167,6 @@ void vm_install_interrupt_handler(struct kvm_vm *vm, exception_handler_fn handle #define SATP_MODE_39 _AC(0x8000000000000000, UL) #define SATP_MODE_48 _AC(0x9000000000000000, UL) -/* SBI return error codes */ -#define SBI_SUCCESS 0 -#define SBI_ERR_FAILURE -1 -#define SBI_ERR_NOT_SUPPORTED -2 -#define SBI_ERR_INVALID_PARAM -3 -#define SBI_ERR_DENIED -4 -#define SBI_ERR_INVALID_ADDRESS -5 -#define SBI_ERR_ALREADY_AVAILABLE -6 -#define SBI_ERR_ALREADY_STARTED -7 -#define SBI_ERR_ALREADY_STOPPED -8 - -#define SBI_EXT_EXPERIMENTAL_START 0x08000000 -#define SBI_EXT_EXPERIMENTAL_END 0x08FFFFFF - -#define KVM_RISCV_SELFTESTS_SBI_EXT SBI_EXT_EXPERIMENTAL_END -#define KVM_RISCV_SELFTESTS_SBI_UCALL 0 -#define KVM_RISCV_SELFTESTS_SBI_UNEXP 1 - static inline void local_irq_enable(void) { csr_set(CSR_SSTATUS, SR_SIE); diff --git a/tools/testing/selftests/kvm/include/riscv/sbi.h b/tools/testing/selftests/kvm/include/riscv/sbi.h index 046b432ae896f..492f3a18fb867 100644 --- a/tools/testing/selftests/kvm/include/riscv/sbi.h +++ b/tools/testing/selftests/kvm/include/riscv/sbi.h @@ -44,6 +44,7 @@ enum sbi_ext_base_fid { SBI_EXT_BASE_GET_IMP_VERSION, SBI_EXT_BASE_PROBE_EXT = 3, }; + enum sbi_ext_pmu_fid { SBI_EXT_PMU_NUM_COUNTERS = 0, SBI_EXT_PMU_COUNTER_GET_INFO, diff --git a/tools/testing/selftests/kvm/include/riscv/ucall.h b/tools/testing/selftests/kvm/include/riscv/ucall.h index be46eb32ec277..a695ae36f3e0d 100644 --- a/tools/testing/selftests/kvm/include/riscv/ucall.h +++ b/tools/testing/selftests/kvm/include/riscv/ucall.h @@ -3,6 +3,7 @@ #define SELFTEST_KVM_UCALL_H #include "processor.h" +#include "sbi.h" #define UCALL_EXIT_REASON KVM_EXIT_RISCV_SBI diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c index 4be5a1ffa06aa..9999173b05453 100644 --- a/tools/testing/selftests/kvm/steal_time.c +++ b/tools/testing/selftests/kvm/steal_time.c @@ -11,7 +11,9 @@ #include #include #include -#ifndef __riscv +#ifdef __riscv +#include "sbi.h" +#else #include #endif From 71a7cbef326bf09748655c5afe5aced31b911869 Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Mon, 3 Jun 2024 14:20:46 +0200 Subject: [PATCH 3/4] KVM: selftests: Fix RISC-V compilation mainline inclusion from Linux 6.10-rc1 commit 0fc670d07d5de36a54f061f457743c9cde1d8b46 category: bugfix bugzilla: https://github.com/RVCK-Project/rvck/issues/290 -------------------------------- Due to commit 2b7deea3ec7c ("Revert "kvm: selftests: move base kvm_util.h declarations to kvm_util_base.h"") kvm selftests now requires explicitly including ucall_common.h when needed. The commit added the directives everywhere they were needed at the time, but, by merge time, new places had been merged for RISC-V. Add those now to fix RISC-V compilation. Fixes: dee7ea42a1eb ("Merge tag kvm-x86-selftests_utils-6.10 of https://github.com/kvm-x86/linux into HEAD") Signed-off-by: Andrew Jones Link: https://lore.kernel.org/r/20240603122045.323064-2-ajones@ventanamicro.com Signed-off-by: Anup Patel Signed-off-by: Fangyu Yu Signed-off-by: ZhenXing Zhu --- tools/testing/selftests/kvm/lib/riscv/ucall.c | 1 + tools/testing/selftests/kvm/riscv/ebreak_test.c | 1 + tools/testing/selftests/kvm/riscv/sbi_pmu_test.c | 1 + 3 files changed, 3 insertions(+) diff --git a/tools/testing/selftests/kvm/lib/riscv/ucall.c b/tools/testing/selftests/kvm/lib/riscv/ucall.c index 14ee17151a590..b5035c63d5163 100644 --- a/tools/testing/selftests/kvm/lib/riscv/ucall.c +++ b/tools/testing/selftests/kvm/lib/riscv/ucall.c @@ -9,6 +9,7 @@ #include "kvm_util.h" #include "processor.h" +#include "sbi.h" void *ucall_arch_get_ucall(struct kvm_vcpu *vcpu) { diff --git a/tools/testing/selftests/kvm/riscv/ebreak_test.c b/tools/testing/selftests/kvm/riscv/ebreak_test.c index 823c132069b46..0e07128549538 100644 --- a/tools/testing/selftests/kvm/riscv/ebreak_test.c +++ b/tools/testing/selftests/kvm/riscv/ebreak_test.c @@ -6,6 +6,7 @@ * */ #include "kvm_util.h" +#include "ucall_common.h" #define LABEL_ADDRESS(v) ((uint64_t)&(v)) diff --git a/tools/testing/selftests/kvm/riscv/sbi_pmu_test.c b/tools/testing/selftests/kvm/riscv/sbi_pmu_test.c index 69bb94e6b2276..f299cbfd23ca0 100644 --- a/tools/testing/selftests/kvm/riscv/sbi_pmu_test.c +++ b/tools/testing/selftests/kvm/riscv/sbi_pmu_test.c @@ -15,6 +15,7 @@ #include "processor.h" #include "sbi.h" #include "arch_timer.h" +#include "ucall_common.h" /* Maximum counters(firmware + hardware) */ #define RISCV_MAX_PMU_COUNTERS 64 From a73d0126c9b24730d0d0d2426c17ec112c75a3fe Mon Sep 17 00:00:00 2001 From: Haibo Xu Date: Mon, 22 Jan 2024 17:58:35 +0800 Subject: [PATCH 4/4] KVM: selftests: Add CONFIG_64BIT definition for the build mainline inclusion from Linux 6.9-rc1 commit b4b12469c5c3fbd9b9f8e5070e6e47a4337b87c6 category: bugfix bugzilla: https://github.com/RVCK-Project/rvck/issues/290 -------------------------------- Since only 64bit KVM selftests were supported on all architectures, add the CONFIG_64BIT definition in kvm/Makefile to ensure only 64bit definitions were available in the corresponding included files. Suggested-by: Andrew Jones Signed-off-by: Haibo Xu Reviewed-by: Andrew Jones Signed-off-by: Anup Patel Signed-off-by: Fangyu Yu Signed-off-by: ZhenXing Zhu --- tools/testing/selftests/kvm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile index e23fb443e7e95..7140cf91fa579 100644 --- a/tools/testing/selftests/kvm/Makefile +++ b/tools/testing/selftests/kvm/Makefile @@ -217,7 +217,7 @@ else LINUX_TOOL_ARCH_INCLUDE = $(top_srcdir)/tools/arch/$(ARCH)/include endif CFLAGS += -Wall -Wstrict-prototypes -Wuninitialized -O2 -g -std=gnu99 \ - -Wno-gnu-variable-sized-type-not-at-end -MD\ + -Wno-gnu-variable-sized-type-not-at-end -MD -DCONFIG_64BIT\ -U_FORTIFY_SOURCE \ -fno-builtin-memcmp -fno-builtin-memcpy -fno-builtin-memset \ -fno-builtin-strnlen \