[PATCH v1 1/7] RISC-V: simplify register width check in ISA string parsing
Conor Dooley
conor at kernel.org
Thu May 4 11:14:20 PDT 2023
From: Conor Dooley <conor.dooley at microchip.com>
Saving off the `isa` pointer to a temp variable, followed by checking if
it has been incremented is a bit of an odd pattern. Perhaps it was done
to avoid a funky looking if statement mixed with the ifdeffery.
Now that we use IS_ENABLED() here just return from the parser as soon as
we detect a mismatch between the string and the currently running
kernel.
Signed-off-by: Conor Dooley <conor.dooley at microchip.com>
---
arch/riscv/kernel/cpufeature.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
index cb32658180da..00df7a3a3931 100644
--- a/arch/riscv/kernel/cpufeature.c
+++ b/arch/riscv/kernel/cpufeature.c
@@ -115,7 +115,6 @@ void __init riscv_fill_hwcap(void)
for_each_of_cpu_node(node) {
unsigned long this_hwcap = 0;
DECLARE_BITMAP(this_isa, RISCV_ISA_EXT_MAX);
- const char *temp;
rc = riscv_of_processor_hartid(node, &hartid);
if (rc < 0)
@@ -126,14 +125,14 @@ void __init riscv_fill_hwcap(void)
continue;
}
- temp = isa;
- if (IS_ENABLED(CONFIG_32BIT) && !strncasecmp(isa, "rv32", 4))
- isa += 4;
- else if (IS_ENABLED(CONFIG_64BIT) && !strncasecmp(isa, "rv64", 4))
- isa += 4;
- /* The riscv,isa DT property must start with rv64 or rv32 */
- if (temp == isa)
+ if (IS_ENABLED(CONFIG_32BIT) && strncasecmp(isa, "rv32", 4))
continue;
+
+ if (IS_ENABLED(CONFIG_64BIT) && strncasecmp(isa, "rv64", 4))
+ continue;
+
+ isa += 4;
+
bitmap_zero(this_isa, RISCV_ISA_EXT_MAX);
for (; *isa; ++isa) {
const char *ext = isa++;
--
2.39.2
More information about the linux-riscv
mailing list