[PATCH 5/6] riscv: hwprobe: Report XTheadVector only when available

Charlie Jenkins thecharlesjenkins at gmail.com
Tue Oct 6 16:54:53 PDT 2026


> User-mode use of XTheadVector requires non-Off sstatus.VS, which we set
> only when has_xtheadvector() (CONFIG_RISCV_ISA_XTHEADVECTOR and
> XTheadVector on all harts).  XTheadVector also bundles operations with
> floating state, which additionally requires non-Off sstatus.FS and hence
> has_fpu().  hwprobe reports XTheadVector from the per-hart vendor ISA
> bitmaps alone, so it can advertise an extension that is always disabled
> in user-mode.
> 
> Report correct environment to user-mode.
> 
> Fixes: a5ea53da65c5 ("riscv: hwprobe: Add thead vendor extension probing")
> Signed-off-by: Radim Krčmář <radim.krcmar at oss.qualcomm.com>
>
> diff --git a/arch/riscv/kernel/vendor_extensions/thead_hwprobe.c b/arch/riscv/kernel/vendor_extensions/thead_hwprobe.c
> index 2eba34011786..f07aa1c8acac 100644
> --- a/arch/riscv/kernel/vendor_extensions/thead_hwprobe.c
> +++ b/arch/riscv/kernel/vendor_extensions/thead_hwprobe.c
> @@ -1,5 +1,7 @@
>  // SPDX-License-Identifier: GPL-2.0-only
>  
> +#include <asm/switch_to.h>
> +#include <asm/vector.h>
>  #include <asm/vendor_extensions/thead.h>
>  #include <asm/vendor_extensions/thead_hwprobe.h>
>  #include <asm/vendor_extensions/vendor_hwprobe.h>
> @@ -14,6 +16,7 @@ void hwprobe_isa_vendor_ext_thead_0(struct riscv_hwprobe *pair, const struct cpu
>  {
>  	VENDOR_EXTENSION_SUPPORTED(pair, cpus,
>  				   riscv_isa_vendor_ext_list_thead.per_hart_isa_bitmap, {
> -		VENDOR_EXT_KEY(XTHEADVECTOR);
> +		if (has_xtheadvector() && has_fpu())

xtheadvector is also gated on FPU=y so this is a reduntant addition. Is
it worthwhile to make this change?

-- 
- Charlie




More information about the linux-riscv mailing list