Commit b485342bd79af363c77ef1a421c4a0aef2de9812
Committed by
Richard Weinberger
1 parent
f911d73105
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
x86, um: actually mark system call tables readonly
Commit a074335a370e ("x86, um: Mark system call tables readonly") was supposed to mark the sys_call_table in UML as RO by adding the const, but it doesn't have the desired effect as it's nevertheless being placed into the data section since __cacheline_aligned enforces sys_call_table being placed into .data..cacheline_aligned instead. We need to use the ____cacheline_aligned version instead to fix this issue. Before: $ nm -v arch/x86/um/sys_call_table_64.o | grep -1 "sys_call_table" U sys_writev 0000000000000000 D sys_call_table 0000000000000000 D syscall_table_size After: $ nm -v arch/x86/um/sys_call_table_64.o | grep -1 "sys_call_table" U sys_writev 0000000000000000 R sys_call_table 0000000000000000 D syscall_table_size Fixes: a074335a370e ("x86, um: Mark system call tables readonly") Cc: H. Peter Anvin <hpa@zytor.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Daniel Borkmann <dborkman@redhat.com> Signed-off-by: Richard Weinberger <richard@nod.at>
Showing 2 changed files with 2 additions and 2 deletions Side-by-side Diff
arch/x86/um/sys_call_table_32.c
... | ... | @@ -34,7 +34,7 @@ |
34 | 34 | |
35 | 35 | extern asmlinkage void sys_ni_syscall(void); |
36 | 36 | |
37 | -const sys_call_ptr_t sys_call_table[] __cacheline_aligned = { | |
37 | +const sys_call_ptr_t sys_call_table[] ____cacheline_aligned = { | |
38 | 38 | /* |
39 | 39 | * Smells like a compiler bug -- it doesn't work |
40 | 40 | * when the & below is removed. |
arch/x86/um/sys_call_table_64.c
... | ... | @@ -47,7 +47,7 @@ |
47 | 47 | |
48 | 48 | extern void sys_ni_syscall(void); |
49 | 49 | |
50 | -const sys_call_ptr_t sys_call_table[] __cacheline_aligned = { | |
50 | +const sys_call_ptr_t sys_call_table[] ____cacheline_aligned = { | |
51 | 51 | /* |
52 | 52 | * Smells like a compiler bug -- it doesn't work |
53 | 53 | * when the & below is removed. |