On Fri, Aug 03, 2018 at 12:53:44PM -0700, Palmer Dabbelt wrote:
This file is expected to be included multiple times in the same file in
order to allow the __SYSCALL macro to generate system call tables. With
a global include guard we end up missing __NR_riscv_flush_icache in the
syscall table, which results in icache flushes that escape the vDSO call
to not actually do anything.
The fix is to move to per-#define include guards, which allows the
system call tables to actually be populated. Thanks to Macrus Comstedt
for finding and fixing the bug!
I also went ahead and fixed the SPDX header to use a //-style comment,
which I've been told is the canonical way to do it.
Cc: Marcus Comstedt <marcus@xxxxxxxx>
Signed-off-by: Palmer Dabbelt <palmer@xxxxxxxxxx>
Fails to build riscv:allnoconfig.
CC arch/riscv/kernel/syscall_table.o
./arch/riscv/include/uapi/asm/syscalls.h:29:36: error:
âsys_riscv_flush_icacheâ undeclared here (not in a function); did you mean â__NR_riscv_flush_icacheâ?