Re: [PATCH] RISC-V: Don't use a global include guard for uapi/asm/syscalls.h

From: Palmer Dabbelt
Date: Thu Aug 09 2018 - 16:58:51 EST


On Thu, 09 Aug 2018 06:26:12 PDT (-0700), linux@xxxxxxxxxxxx wrote:
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â?

Thanks. I added you to another patch set.