Message ID | 20230407231103.2622178-2-evan@rivosinc.com (mailing list archive) |
---|---|
State | Accepted |
Commit | ff77cf5b2e033d0bb5e3b7f83ebf65c5adc20d12 |
Headers | show |
Series | [v6,1/6] RISC-V: Move struct riscv_cpuinfo to new header | expand |
Hello: This series was applied to riscv/linux.git (for-next) by Palmer Dabbelt <palmer@rivosinc.com>: On Fri, 7 Apr 2023 16:10:58 -0700 you wrote: > In preparation for tracking and exposing microarchitectural details to > userspace (like whether or not unaligned accesses are fast), move the > riscv_cpuinfo struct out to its own new cpufeatures.h header. It will > need to be used by more than just cpu.c. > > Signed-off-by: Evan Green <evan@rivosinc.com> > Reviewed-by: Conor Dooley <conor.dooley@microchip.com> > Reviewed-by: Heiko Stuebner <heiko.stuebner@vrull.eu> > Tested-by: Heiko Stuebner <heiko.stuebner@vrull.eu> > Reviewed-by: Paul Walmsley <paul.walmsley@sifive.com> > > [...] Here is the summary with links: - [v6,1/6] RISC-V: Move struct riscv_cpuinfo to new header https://git.kernel.org/riscv/c/ff77cf5b2e03 - [v6,2/6] RISC-V: Add a syscall for HW probing https://git.kernel.org/riscv/c/ea3de9ce8aa2 - [v6,3/6] RISC-V: hwprobe: Add support for RISCV_HWPROBE_BASE_BEHAVIOR_IMA https://git.kernel.org/riscv/c/00e76e2c6a2b - [v6,4/6] RISC-V: hwprobe: Support probing of misaligned access performance https://git.kernel.org/riscv/c/62a31d6e38bd - [v6,5/6] selftests: Test the new RISC-V hwprobe interface https://git.kernel.org/riscv/c/287dcc2b0c83 - [v6,6/6] RISC-V: Add hwprobe vDSO function and data https://git.kernel.org/riscv/c/aa5af0aa90ba You are awesome, thank you!
diff --git a/arch/riscv/include/asm/cpufeature.h b/arch/riscv/include/asm/cpufeature.h new file mode 100644 index 000000000000..66ebaae449c8 --- /dev/null +++ b/arch/riscv/include/asm/cpufeature.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright 2022-2023 Rivos, Inc + */ + +#ifndef _ASM_CPUFEATURE_H +#define _ASM_CPUFEATURE_H + +/* + * These are probed via a device_initcall(), via either the SBI or directly + * from the corresponding CSRs. + */ +struct riscv_cpuinfo { + unsigned long mvendorid; + unsigned long marchid; + unsigned long mimpid; +}; + +DECLARE_PER_CPU(struct riscv_cpuinfo, riscv_cpuinfo); + +#endif diff --git a/arch/riscv/kernel/cpu.c b/arch/riscv/kernel/cpu.c index 8400f0cc9704..dafd0caa4f1d 100644 --- a/arch/riscv/kernel/cpu.c +++ b/arch/riscv/kernel/cpu.c @@ -7,6 +7,7 @@ #include <linux/init.h> #include <linux/seq_file.h> #include <linux/of.h> +#include <asm/cpufeature.h> #include <asm/csr.h> #include <asm/hwcap.h> #include <asm/sbi.h> @@ -70,12 +71,7 @@ int riscv_of_parent_hartid(struct device_node *node, unsigned long *hartid) return -1; } -struct riscv_cpuinfo { - unsigned long mvendorid; - unsigned long marchid; - unsigned long mimpid; -}; -static DEFINE_PER_CPU(struct riscv_cpuinfo, riscv_cpuinfo); +DEFINE_PER_CPU(struct riscv_cpuinfo, riscv_cpuinfo); unsigned long riscv_cached_mvendorid(unsigned int cpu_id) {