]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
riscv: cpufeature: Fix Zk bundled extension missing Zknh
authorGuodong Xu <guodong@riscstar.com>
Tue, 23 Dec 2025 02:44:27 +0000 (10:44 +0800)
committerPaul Walmsley <pjw@kernel.org>
Tue, 6 Jan 2026 00:40:44 +0000 (17:40 -0700)
The Zk extension is a bundle consisting of Zkn, Zkr, and Zkt. The Zkn
extension itself is a bundle consisting of Zbkb, Zbkc, Zbkx, Zknd, Zkne,
and Zknh.

The current implementation of riscv_zk_bundled_exts manually listed
the dependencies but missed RISCV_ISA_EXT_ZKNH.

Fix this by introducing a RISCV_ISA_EXT_ZKN macro that lists the Zkn
components and using it in both riscv_zk_bundled_exts and
riscv_zkn_bundled_exts.

This adds the missing Zknh extension to Zk and reduces code duplication.

Fixes: 0d8295ed975b ("riscv: add ISA extension parsing for scalar crypto")
Link: https://patch.msgid.link/20231114141256.126749-4-cleger@rivosinc.com/
Signed-off-by: Guodong Xu <guodong@riscstar.com>
Reviewed-by: Clément Léger <cleger@rivosinc.com>
Link: https://patch.msgid.link/20251223-zk-missing-zknh-v1-1-b627c990ee1a@riscstar.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
arch/riscv/kernel/cpufeature.c

index c05b11596c19078fb41d0c83986b87183f147526..fa591aff9d335a4f451858214e48feef314eb96b 100644 (file)
@@ -301,23 +301,22 @@ static const unsigned int riscv_a_exts[] = {
        RISCV_ISA_EXT_ZALRSC,
 };
 
+#define RISCV_ISA_EXT_ZKN      \
+       RISCV_ISA_EXT_ZBKB,     \
+       RISCV_ISA_EXT_ZBKC,     \
+       RISCV_ISA_EXT_ZBKX,     \
+       RISCV_ISA_EXT_ZKND,     \
+       RISCV_ISA_EXT_ZKNE,     \
+       RISCV_ISA_EXT_ZKNH
+
 static const unsigned int riscv_zk_bundled_exts[] = {
-       RISCV_ISA_EXT_ZBKB,
-       RISCV_ISA_EXT_ZBKC,
-       RISCV_ISA_EXT_ZBKX,
-       RISCV_ISA_EXT_ZKND,
-       RISCV_ISA_EXT_ZKNE,
+       RISCV_ISA_EXT_ZKN,
        RISCV_ISA_EXT_ZKR,
-       RISCV_ISA_EXT_ZKT,
+       RISCV_ISA_EXT_ZKT
 };
 
 static const unsigned int riscv_zkn_bundled_exts[] = {
-       RISCV_ISA_EXT_ZBKB,
-       RISCV_ISA_EXT_ZBKC,
-       RISCV_ISA_EXT_ZBKX,
-       RISCV_ISA_EXT_ZKND,
-       RISCV_ISA_EXT_ZKNE,
-       RISCV_ISA_EXT_ZKNH,
+       RISCV_ISA_EXT_ZKN
 };
 
 static const unsigned int riscv_zks_bundled_exts[] = {