Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

riscv: cpufeature: add validation for zfa, zfh and zfhmin

These extensions depends on the F one. Add a validation callback
checking for the F extension to be present. Now that extensions are
correctly reported using the F/D presence, we can remove the
has_fpu() check in hwprobe_isa_ext0().

Signed-off-by: Clément Léger <cleger@rivosinc.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20250527100001.33284-1-cleger@rivosinc.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>

authored by

Clément Léger and committed by
Paul Walmsley
2e2cf558 568a2fa1

+9 -11
+3 -3
arch/riscv/kernel/cpufeature.c
··· 474 474 __RISCV_ISA_EXT_DATA(zacas, RISCV_ISA_EXT_ZACAS), 475 475 __RISCV_ISA_EXT_DATA(zalrsc, RISCV_ISA_EXT_ZALRSC), 476 476 __RISCV_ISA_EXT_DATA(zawrs, RISCV_ISA_EXT_ZAWRS), 477 - __RISCV_ISA_EXT_DATA(zfa, RISCV_ISA_EXT_ZFA), 477 + __RISCV_ISA_EXT_DATA_VALIDATE(zfa, RISCV_ISA_EXT_ZFA, riscv_ext_f_depends), 478 478 __RISCV_ISA_EXT_DATA_VALIDATE(zfbfmin, RISCV_ISA_EXT_ZFBFMIN, riscv_ext_f_depends), 479 - __RISCV_ISA_EXT_DATA(zfh, RISCV_ISA_EXT_ZFH), 480 - __RISCV_ISA_EXT_DATA(zfhmin, RISCV_ISA_EXT_ZFHMIN), 479 + __RISCV_ISA_EXT_DATA_VALIDATE(zfh, RISCV_ISA_EXT_ZFH, riscv_ext_f_depends), 480 + __RISCV_ISA_EXT_DATA_VALIDATE(zfhmin, RISCV_ISA_EXT_ZFHMIN, riscv_ext_f_depends), 481 481 __RISCV_ISA_EXT_DATA(zca, RISCV_ISA_EXT_ZCA), 482 482 __RISCV_ISA_EXT_DATA_VALIDATE(zcb, RISCV_ISA_EXT_ZCB, riscv_ext_zca_depends), 483 483 __RISCV_ISA_EXT_DATA_VALIDATE(zcd, RISCV_ISA_EXT_ZCD, riscv_ext_zcd_validate),
+6 -8
arch/riscv/kernel/sys_hwprobe.c
··· 153 153 EXT_KEY(ZVKT); 154 154 } 155 155 156 - if (has_fpu()) { 157 - EXT_KEY(ZCD); 158 - EXT_KEY(ZCF); 159 - EXT_KEY(ZFA); 160 - EXT_KEY(ZFBFMIN); 161 - EXT_KEY(ZFH); 162 - EXT_KEY(ZFHMIN); 163 - } 156 + EXT_KEY(ZCD); 157 + EXT_KEY(ZCF); 158 + EXT_KEY(ZFA); 159 + EXT_KEY(ZFBFMIN); 160 + EXT_KEY(ZFH); 161 + EXT_KEY(ZFHMIN); 164 162 165 163 if (IS_ENABLED(CONFIG_RISCV_ISA_SUPM)) 166 164 EXT_KEY(SUPM);