On 21/01/13 22:55, Al Viro wrote: > I've tried to sanitize cond_syscall/SYSCALL_ALIAS situation; the tree is in > git.kernel.org/pub/scm/linux/kernel/git/viro/signal experimental-syscalls > NOTE: this is absolutely untested and might very well blow up > on any number of architectures. > > Review and comments would be very welcome. Looking at "consolidate cond_syscall and SYSCALL_ALIAS declarations", is it worth having the default __SYMBOL_NAME declaration in include/linux/linkage.h make use of CONFIG_SYMBOL_PREFIX? E.g. in the metag patchset we currently have the patch below. Admittedly CONFIG_SYMBOL_PREFIX is a string which would make it's use in SYMBOL_NAME a bit awkward. Cheers James Subject: [PATCH v3 02/44] asm-generic/unistd.h: handle symbol prefixes in cond_syscall Some architectures have symbol prefixes and set CONFIG_SYMBOL_PREFIX, but this wasn't taken into account by the generic cond_syscall. It's easy enough to fix in a generic fashion, so add the symbol prefix to symbol names in cond_syscall when CONFIG_SYMBOL_PREFIX is set. Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx> Acked-by: Arnd Bergmann <arnd@xxxxxxxx> Acked-by: Mike Frysinger <vapier@xxxxxxxxxx> --- include/asm-generic/unistd.h | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/include/asm-generic/unistd.h b/include/asm-generic/unistd.h index 257c55e..4077b5d 100644 --- a/include/asm-generic/unistd.h +++ b/include/asm-generic/unistd.h @@ -17,5 +17,12 @@ * but it doesn't work on all toolchains, so we just do it by hand */ #ifndef cond_syscall -#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") +#ifdef CONFIG_SYMBOL_PREFIX +#define __SYMBOL_PREFIX CONFIG_SYMBOL_PREFIX +#else +#define __SYMBOL_PREFIX +#endif +#define cond_syscall(x) asm(".weak\t" __SYMBOL_PREFIX #x "\n\t" \ + ".set\t" __SYMBOL_PREFIX #x "," \ + __SYMBOL_PREFIX "sys_ni_syscall") #endif -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html