2018-12-10 20:58:27

by David Abdurachmanov

[permalink] [raw]
Subject: [PATCH 0/2] Fix next-audit branch

Intel kbuild test robot reported on Dec 8th, 2018 that next-audit is
broken. This was with riscv-allmodconfig config.

There were two issues found:
- We don't generate functions needed for trace events;
- We are missing NR_syscalls macro used by kernel/trace.

David Abdurachmanov (2):
riscv: define NR_syscalls in unistd.h
riscv: define CREATE_TRACE_POINTS in ptrace.c

arch/riscv/include/asm/unistd.h | 2 ++
arch/riscv/kernel/ptrace.c | 2 ++
2 files changed, 4 insertions(+)

--
2.19.2



2018-12-10 23:36:18

by David Abdurachmanov

[permalink] [raw]
Subject: [PATCH 2/2] riscv: define CREATE_TRACE_POINTS in ptrace.c

Define CREATE_TRACE_POINTS in order to create functions and structures
for the trace events. This is needed if HAVE_SYSCALL_TRACEPOINTS and
CONFIG_FTRACE_SYSCALLS are enabled, otherwise we get linking errors:

[..]
MODPOST vmlinux.o
kernel/trace/trace_syscalls.o: In function `.L0 ':
trace_syscalls.c:(.text+0x1152): undefined reference to `__tracepoint_sys_enter'
trace_syscalls.c:(.text+0x126c): undefined reference to `__tracepoint_sys_enter'
trace_syscalls.c:(.text+0x1328): undefined reference to `__tracepoint_sys_enter'
trace_syscalls.c:(.text+0x14aa): undefined reference to `__tracepoint_sys_enter'
trace_syscalls.c:(.text+0x1684): undefined reference to `__tracepoint_sys_exit'
trace_syscalls.c:(.text+0x17a0): undefined reference to `__tracepoint_sys_exit'
trace_syscalls.c:(.text+0x185c): undefined reference to `__tracepoint_sys_exit'
trace_syscalls.c:(.text+0x19de): undefined reference to `__tracepoint_sys_exit'
arch/riscv/kernel/ptrace.o: In function `.L0 ':
ptrace.c:(.text+0x4dc): undefined reference to `__tracepoint_sys_enter'
ptrace.c:(.text+0x632): undefined reference to `__tracepoint_sys_exit'
make: *** [Makefile:1036: vmlinux] Error 1

Signed-off-by: David Abdurachmanov <[email protected]>
Fixes: b78002b395b4 ("riscv: add HAVE_SYSCALL_TRACEPOINTS to Kconfig")
---
arch/riscv/kernel/ptrace.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/riscv/kernel/ptrace.c b/arch/riscv/kernel/ptrace.c
index 60f1e02eed36..32a374a1b31a 100644
--- a/arch/riscv/kernel/ptrace.c
+++ b/arch/riscv/kernel/ptrace.c
@@ -24,6 +24,8 @@
#include <linux/sched.h>
#include <linux/sched/task_stack.h>
#include <linux/tracehook.h>
+
+#define CREATE_TRACE_POINTS
#include <trace/events/syscalls.h>

enum riscv_regset {
--
2.19.2


2018-12-10 23:36:48

by David Abdurachmanov

[permalink] [raw]
Subject: [PATCH 1/2] riscv: define NR_syscalls in unistd.h

This macro is used by kernel/trace/{trace.h,trace_syscalls.c} if we
have CONFIG_FTRACE_SYSCALLS enabled.

Signed-off-by: David Abdurachmanov <[email protected]>
Fixes: b78002b395b4 ("riscv: add HAVE_SYSCALL_TRACEPOINTS to Kconfig")
---
arch/riscv/include/asm/unistd.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/riscv/include/asm/unistd.h b/arch/riscv/include/asm/unistd.h
index fef96f117b4d..073ee80fdf74 100644
--- a/arch/riscv/include/asm/unistd.h
+++ b/arch/riscv/include/asm/unistd.h
@@ -19,3 +19,5 @@
#define __ARCH_WANT_SYS_CLONE

#include <uapi/asm/unistd.h>
+
+#define NR_syscalls (__NR_syscalls)
--
2.19.2


2018-12-14 01:59:15

by Olof Johansson

[permalink] [raw]
Subject: Re: [PATCH 1/2] riscv: define NR_syscalls in unistd.h

On Tue, Dec 11, 2018 at 4:44 AM David Abdurachmanov
<[email protected]> wrote:
>
> This macro is used by kernel/trace/{trace.h,trace_syscalls.c} if we
> have CONFIG_FTRACE_SYSCALLS enabled.
>
> Signed-off-by: David Abdurachmanov <[email protected]>
> Fixes: b78002b395b4 ("riscv: add HAVE_SYSCALL_TRACEPOINTS to Kconfig")

Reviewed-by: Olof Johansson <[email protected]>


-Olof