RISC-V: Don't use a global include guard for uapi/asm/syscalls.h
authorPalmer Dabbelt <palmer@sifive.com>
Fri, 3 Aug 2018 19:27:19 +0000 (12:27 -0700)
committerPalmer Dabbelt <palmer@sifive.com>
Mon, 20 Aug 2018 17:55:24 +0000 (10:55 -0700)
commite45c7aca4914efc8bcdd8fc231efadcdc87ae2e5
tree85dbb9cb9528ce2f392d44db75b8acde5c43cfd2
parent7847e7052fc37fff9761347411f2838849e2146d
RISC-V: Don't use a global include guard for uapi/asm/syscalls.h

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!

Cc: Marcus Comstedt <marcus@mc.pp.se>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
arch/riscv/include/asm/unistd.h
arch/riscv/include/uapi/asm/syscalls.h