summaryrefslogtreecommitdiffstats
path: root/arch/riscv/kernel/vdso/Makefile
diff options
context:
space:
mode:
authorEvan Green <evan@rivosinc.com>2023-04-08 01:11:03 +0200
committerPalmer Dabbelt <palmer@rivosinc.com>2023-04-19 00:48:18 +0200
commitaa5af0aa90bad3f1cad5a90ee5eecd92ac9f3096 (patch)
tree4047028646908985a844d3423b5213009f59bd42 /arch/riscv/kernel/vdso/Makefile
parentselftests: Test the new RISC-V hwprobe interface (diff)
downloadlinux-aa5af0aa90bad3f1cad5a90ee5eecd92ac9f3096.tar.xz
linux-aa5af0aa90bad3f1cad5a90ee5eecd92ac9f3096.zip
RISC-V: Add hwprobe vDSO function and data
Add a vDSO function __vdso_riscv_hwprobe, which can sit in front of the riscv_hwprobe syscall and answer common queries. We stash a copy of static answers for the "all CPUs" case in the vDSO data page. This data is private to the vDSO, so we can decide later to change what's stored there or under what conditions we defer to the syscall. Currently all data can be discovered at boot, so the vDSO function answers all queries when the cpumask is set to the "all CPUs" hint. There's also a boolean in the data that lets the vDSO function know that all CPUs are the same. In that case, the vDSO will also answer queries for arbitrary CPU masks in addition to the "all CPUs" hint. Signed-off-by: Evan Green <evan@rivosinc.com> Link: https://lore.kernel.org/r/20230407231103.2622178-7-evan@rivosinc.com Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Diffstat (limited to 'arch/riscv/kernel/vdso/Makefile')
-rw-r--r--arch/riscv/kernel/vdso/Makefile4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/riscv/kernel/vdso/Makefile b/arch/riscv/kernel/vdso/Makefile
index 06e6b27f3bcc..022258426050 100644
--- a/arch/riscv/kernel/vdso/Makefile
+++ b/arch/riscv/kernel/vdso/Makefile
@@ -12,6 +12,8 @@ vdso-syms += vgettimeofday
endif
vdso-syms += getcpu
vdso-syms += flush_icache
+vdso-syms += hwprobe
+vdso-syms += sys_hwprobe
# Files to link into the vdso
obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o
@@ -23,6 +25,8 @@ ifneq ($(c-gettimeofday-y),)
CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
endif
+CFLAGS_hwprobe.o += -fPIC
+
# Build rules
targets := $(obj-vdso) vdso.so vdso.so.dbg vdso.lds
obj-vdso := $(addprefix $(obj)/, $(obj-vdso))