* [git pull] signal.git pile 2 @ 2012-12-21 0:21 Al Viro 2012-12-21 6:24 ` CONFIG_GENERIC_SIGALTSTACK with asm-generic/syscalls.h (was Re: [git pull] signal.git pile 2) Vineet Gupta 0 siblings, 1 reply; 6+ messages in thread From: Al Viro @ 2012-12-21 0:21 UTC (permalink / raw) To: Linus Torvalds; +Cc: linux-kernel, linux-arch sigaltstack infrastructure + conversion for x86, alpha and um, COMPAT_SYSCALL_DEFINE infrastructure. Note that there are several conflicts between "unify SS_ONSTACK/SS_DISABLE definitions" and UAPI patches in mainline; resolution is trivial - just remove definitions of SS_ONSTACK and SS_DISABLED from arch/*/uapi/asm/signal.h; they are all identical and include/uapi/linux/signal.h contains the unified variant. Please, pull from git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal for-linus Shortlog: Al Viro (11): COMPAT_SYSCALL_DEFINE: infrastructure Bury the conditionals from kernel_thread/kernel_execve series missing user_stack_pointer() instances new helper: current_user_stack_pointer() unify SS_ONSTACK/SS_DISABLE definitions new helper: restore_altstack() new helper: compat_user_stack_pointer() introduce generic sys_sigaltstack(), switch x86 and um to it generic compat_sys_sigaltstack() new helpers: __save_altstack/__compat_save_altstack, switch x86 and um to those alpha: switch to generic sigaltstack Diffstat: arch/Kconfig | 9 +-- arch/alpha/Kconfig | 3 +- arch/alpha/include/asm/ptrace.h | 1 + arch/alpha/include/asm/signal.h | 6 -- arch/alpha/include/asm/unistd.h | 1 - arch/alpha/kernel/signal.c | 10 +---- arch/arm/Kconfig | 2 - arch/arm/include/asm/unistd.h | 1 - arch/arm/include/uapi/asm/signal.h | 7 --- arch/arm64/Kconfig | 2 - arch/arm64/include/asm/compat.h | 5 +- arch/arm64/include/asm/unistd.h | 1 - arch/avr32/Kconfig | 2 - arch/avr32/include/asm/ptrace.h | 1 + arch/avr32/include/asm/unistd.h | 1 - arch/avr32/include/uapi/asm/signal.h | 6 -- arch/blackfin/Kconfig | 2 - arch/blackfin/include/asm/ptrace.h | 1 + arch/blackfin/include/asm/unistd.h | 1 - arch/c6x/Kconfig | 2 - arch/c6x/include/uapi/asm/unistd.h | 1 - arch/cris/Kconfig | 2 - arch/cris/include/asm/ptrace.h | 1 + arch/cris/include/asm/signal.h | 6 -- arch/cris/include/asm/unistd.h | 1 - arch/frv/Kconfig | 2 - arch/frv/include/asm/unistd.h | 1 - arch/h8300/Kconfig | 2 - arch/h8300/include/asm/ptrace.h | 1 + arch/h8300/include/asm/signal.h | 6 -- arch/h8300/include/asm/unistd.h | 1 - arch/hexagon/Kconfig | 2 - arch/hexagon/include/uapi/asm/unistd.h | 1 - arch/ia64/Kconfig | 2 - arch/ia64/include/asm/ptrace.h | 5 ++ arch/ia64/include/asm/unistd.h | 1 - arch/ia64/include/uapi/asm/signal.h | 6 -- arch/m32r/Kconfig | 2 - arch/m32r/include/asm/ptrace.h | 1 + arch/m32r/include/asm/signal.h | 6 -- arch/m32r/include/asm/unistd.h | 1 - arch/m68k/Kconfig | 2 - arch/m68k/include/asm/ptrace.h | 1 + arch/m68k/include/asm/unistd.h | 1 - arch/m68k/include/uapi/asm/signal.h | 6 -- arch/microblaze/Kconfig | 2 - arch/microblaze/include/asm/ptrace.h | 1 + arch/microblaze/include/asm/unistd.h | 1 - arch/mips/Kconfig | 2 - arch/mips/include/asm/ptrace.h | 1 + arch/mips/include/asm/unistd.h | 1 - arch/mips/include/uapi/asm/signal.h | 6 -- arch/mn10300/Kconfig | 2 - arch/mn10300/include/asm/unistd.h | 1 - arch/mn10300/include/uapi/asm/signal.h | 6 -- arch/openrisc/Kconfig | 2 - arch/openrisc/include/uapi/asm/unistd.h | 1 - arch/parisc/Kconfig | 2 - arch/parisc/include/asm/unistd.h | 1 - arch/parisc/include/uapi/asm/signal.h | 6 -- arch/powerpc/Kconfig | 2 - arch/powerpc/include/asm/unistd.h | 1 - arch/powerpc/include/uapi/asm/signal.h | 6 -- arch/s390/Kconfig | 2 - arch/s390/include/asm/compat.h | 3 + arch/s390/include/asm/unistd.h | 1 - arch/s390/include/uapi/asm/signal.h | 6 -- arch/score/Kconfig | 2 - arch/score/include/asm/ptrace.h | 1 + arch/score/include/asm/unistd.h | 1 - arch/sh/Kconfig | 2 - arch/sh/include/asm/unistd.h | 1 - arch/sparc/Kconfig | 2 - arch/sparc/include/asm/unistd.h | 1 - arch/sparc/include/uapi/asm/signal.h | 6 -- arch/tile/Kconfig | 2 - arch/tile/include/asm/ptrace.h | 1 + arch/tile/include/asm/unistd.h | 1 - arch/um/kernel/signal.c | 5 -- arch/unicore32/Kconfig | 2 - arch/unicore32/include/asm/ptrace.h | 1 + arch/unicore32/include/uapi/asm/unistd.h | 1 - arch/x86/Kconfig | 3 +- arch/x86/ia32/ia32_signal.c | 55 +--------------------- arch/x86/ia32/ia32entry.S | 1 - arch/x86/include/asm/ia32.h | 10 +--- arch/x86/include/asm/ptrace.h | 7 +++ arch/x86/include/asm/signal.h | 6 -- arch/x86/include/asm/sys_ia32.h | 2 - arch/x86/include/asm/syscalls.h | 3 - arch/x86/include/asm/unistd.h | 1 - arch/x86/kernel/entry_32.S | 1 - arch/x86/kernel/entry_64.S | 3 - arch/x86/kernel/signal.c | 29 ++---------- arch/x86/syscalls/syscall_32.tbl | 2 +- arch/x86/syscalls/syscall_64.tbl | 4 +- arch/x86/um/Kconfig | 3 +- arch/x86/um/asm/ptrace.h | 1 + arch/x86/um/signal.c | 9 +--- arch/x86/um/sys_call_table_32.c | 1 - arch/x86/um/sys_call_table_64.c | 1 - arch/xtensa/Kconfig | 2 - arch/xtensa/include/asm/ptrace.h | 2 + arch/xtensa/include/asm/unistd.h | 1 - arch/xtensa/include/uapi/asm/signal.h | 6 -- fs/exec.c | 21 -------- include/linux/binfmts.h | 4 -- include/linux/compat.h | 62 +++++++++++++++++++++++++ include/linux/ptrace.h | 4 ++ include/linux/sched.h | 2 - include/linux/signal.h | 3 + include/linux/syscalls.h | 15 ++---- include/uapi/asm-generic/signal.h | 6 -- include/uapi/linux/signal.h | 2 + init/main.c | 4 +- kernel/fork.c | 2 - kernel/kmod.c | 6 +- kernel/signal.c | 74 ++++++++++++++++++++++++++++++ 118 files changed, 211 insertions(+), 357 deletions(-) ^ permalink raw reply [flat|nested] 6+ messages in thread
* CONFIG_GENERIC_SIGALTSTACK with asm-generic/syscalls.h (was Re: [git pull] signal.git pile 2) 2012-12-21 0:21 [git pull] signal.git pile 2 Al Viro @ 2012-12-21 6:24 ` Vineet Gupta 2012-12-21 7:15 ` Al Viro 2012-12-21 11:52 ` James Hogan 0 siblings, 2 replies; 6+ messages in thread From: Vineet Gupta @ 2012-12-21 6:24 UTC (permalink / raw) To: Arnd Bergmann; +Cc: Al Viro, Linus Torvalds, linux-kernel, linux-arch On Friday 21 December 2012 05:51 AM, Al Viro wrote: > sigaltstack infrastructure + conversion for x86, alpha and um, > COMPAT_SYSCALL_DEFINE infrastructure. Note that there are several > conflicts between "unify SS_ONSTACK/SS_DISABLE definitions" and > UAPI patches in mainline; resolution is trivial - just remove definitions > of SS_ONSTACK and SS_DISABLED from arch/*/uapi/asm/signal.h; they are > all identical and include/uapi/linux/signal.h contains the unified > variant. Please, pull from > git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal for-linus > Hi Arnd, In Linus' tree with above merged, selecting CONFIG_GENERIC_SIGALTSTACK is causing build issues for ARC port (and possibly others as well) which use asm-generic/syscalls.h due to a different prototype for sys_sigaltstack coming in from linux/syscalls.h While I can band-aid ARC port by #define sys_sigaltstack before including asm-generic, it might be better if we conditional-ize one of the prototypes. Following works for me. diff --git a/include/asm-generic/syscalls.h b/include/asm-generic/syscalls.h index 58f466f..1db51b8 100644 --- a/include/asm-generic/syscalls.h +++ b/include/asm-generic/syscalls.h @@ -21,10 +21,12 @@ asmlinkage long sys_mmap(unsigned long addr, unsigned long len, unsigned long fd, off_t pgoff); #endif +#ifndef CONFIG_GENERIC_SIGALTSTACK #ifndef sys_sigaltstack asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *, struct pt_regs *); #endif +#endif #ifndef sys_rt_sigreturn asmlinkage long sys_rt_sigreturn(struct pt_regs *regs); Thx, -Vineet ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: CONFIG_GENERIC_SIGALTSTACK with asm-generic/syscalls.h (was Re: [git pull] signal.git pile 2) 2012-12-21 6:24 ` CONFIG_GENERIC_SIGALTSTACK with asm-generic/syscalls.h (was Re: [git pull] signal.git pile 2) Vineet Gupta @ 2012-12-21 7:15 ` Al Viro 2012-12-21 11:52 ` James Hogan 1 sibling, 0 replies; 6+ messages in thread From: Al Viro @ 2012-12-21 7:15 UTC (permalink / raw) To: Vineet Gupta; +Cc: Arnd Bergmann, Linus Torvalds, linux-kernel, linux-arch On Fri, Dec 21, 2012 at 11:54:08AM +0530, Vineet Gupta wrote: > On Friday 21 December 2012 05:51 AM, Al Viro wrote: > > sigaltstack infrastructure + conversion for x86, alpha and um, > > COMPAT_SYSCALL_DEFINE infrastructure. Note that there are several > > conflicts between "unify SS_ONSTACK/SS_DISABLE definitions" and > > UAPI patches in mainline; resolution is trivial - just remove definitions > > of SS_ONSTACK and SS_DISABLED from arch/*/uapi/asm/signal.h; they are > > all identical and include/uapi/linux/signal.h contains the unified > > variant. Please, pull from > > git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal for-linus > > > > Hi Arnd, > > In Linus' tree with above merged, selecting CONFIG_GENERIC_SIGALTSTACK > is causing build issues for ARC port (and possibly others as well) which > use asm-generic/syscalls.h due to a different prototype for > sys_sigaltstack coming in from linux/syscalls.h > > While I can band-aid ARC port by #define sys_sigaltstack before > including asm-generic, it might be better if we conditional-ize one of > the prototypes. Following works for me. TBH, the plan was to use such band-aids until all ports using asm-generic/syscalls.h switch to generic and we drop the damn prototype from there. But yes, what you are suggesting would also do. As for asm-generic/syscalls.h, it should simply die out. Look: sys_sigaltstack() eventually goes to linux/syscalls.h, where it ought to be anyway. sys_rt_sigreturn() should be there as well - and it should be long (void); current_pt_regs() is there for purpose... sys_rt_sigsuspend() and and should go into linux/syscalls.h too - the only obstacle is mips and it can simply drop its private implementation and use the generic one. Et cetera... I hope to kill it completely in the next cycle, along with quite a few things in arch/*/include/asm/syscalls.h. FWIW, the plan for this cycle signal.git is to put a bunch of generic variants of syscalls into kernel/signal.c (we have a lot of pointless code duplication, mostly in compat ones) and start a bunch of no-rebase arch-$ARCH branches at that point, as it had been done for kernel_thread series - i.e. safely mergable into architecture git trees and going to Linus either that way or through signal.git, preferably the former. sigaltstack(2) definitely should get unified by the end of that, and I hope to get several kilolines of code killed in compat stuff. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: CONFIG_GENERIC_SIGALTSTACK with asm-generic/syscalls.h (was Re: [git pull] signal.git pile 2) 2012-12-21 6:24 ` CONFIG_GENERIC_SIGALTSTACK with asm-generic/syscalls.h (was Re: [git pull] signal.git pile 2) Vineet Gupta 2012-12-21 7:15 ` Al Viro @ 2012-12-21 11:52 ` James Hogan 2012-12-21 16:07 ` Al Viro 1 sibling, 1 reply; 6+ messages in thread From: James Hogan @ 2012-12-21 11:52 UTC (permalink / raw) To: Vineet Gupta, Al Viro Cc: Arnd Bergmann, Linus Torvalds, linux-kernel, linux-arch On 21/12/12 06:24, Vineet Gupta wrote: > On Friday 21 December 2012 05:51 AM, Al Viro wrote: >> sigaltstack infrastructure + conversion for x86, alpha and um, >> COMPAT_SYSCALL_DEFINE infrastructure. Note that there are several >> conflicts between "unify SS_ONSTACK/SS_DISABLE definitions" and >> UAPI patches in mainline; resolution is trivial - just remove definitions >> of SS_ONSTACK and SS_DISABLED from arch/*/uapi/asm/signal.h; they are >> all identical and include/uapi/linux/signal.h contains the unified >> variant. Please, pull from >> git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal for-linus >> > > Hi Arnd, > > In Linus' tree with above merged, selecting CONFIG_GENERIC_SIGALTSTACK > is causing build issues for ARC port (and possibly others as well) which > use asm-generic/syscalls.h due to a different prototype for > sys_sigaltstack coming in from linux/syscalls.h > > While I can band-aid ARC port by #define sys_sigaltstack before > including asm-generic, it might be better if we conditional-ize one of > the prototypes. Following works for me. > > diff --git a/include/asm-generic/syscalls.h b/include/asm-generic/syscalls.h > index 58f466f..1db51b8 100644 > --- a/include/asm-generic/syscalls.h > +++ b/include/asm-generic/syscalls.h > @@ -21,10 +21,12 @@ asmlinkage long sys_mmap(unsigned long addr, unsigned long len, > unsigned long fd, off_t pgoff); > #endif > > +#ifndef CONFIG_GENERIC_SIGALTSTACK > #ifndef sys_sigaltstack > asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *, > struct pt_regs *); > #endif > +#endif Reviewed-by: James Hogan <james.hogan@imgtec.com> I also see this issue with metag when I try and select CONFIG_GENERIC_SIGALTSTACK. Until asm-generic/syscalls.h goes away it seems a shame to have to keep a misleading #define sys_sigaltstack sys_sigaltstack bodge in architecture's asm/syscalls.h. Cheers James ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: CONFIG_GENERIC_SIGALTSTACK with asm-generic/syscalls.h (was Re: [git pull] signal.git pile 2) 2012-12-21 11:52 ` James Hogan @ 2012-12-21 16:07 ` Al Viro 2012-12-24 5:21 ` [PATCH] CONFIG_GENERIC_SIGALTSTACK build breakage with asm-generic/syscalls.h Vineet Gupta 0 siblings, 1 reply; 6+ messages in thread From: Al Viro @ 2012-12-21 16:07 UTC (permalink / raw) To: James Hogan Cc: Vineet Gupta, Arnd Bergmann, Linus Torvalds, linux-kernel, linux-arch On Fri, Dec 21, 2012 at 11:52:01AM +0000, James Hogan wrote: > Reviewed-by: James Hogan <james.hogan@imgtec.com> > > I also see this issue with metag when I try and select > CONFIG_GENERIC_SIGALTSTACK. Until asm-generic/syscalls.h goes away it > seems a shame to have to keep a misleading #define sys_sigaltstack > sys_sigaltstack bodge in architecture's asm/syscalls.h. OK, I'm convinced; Vineet, could you reply with Signed-off-by: to use? It's trivial, of course, but... ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] CONFIG_GENERIC_SIGALTSTACK build breakage with asm-generic/syscalls.h 2012-12-21 16:07 ` Al Viro @ 2012-12-24 5:21 ` Vineet Gupta 0 siblings, 0 replies; 6+ messages in thread From: Vineet Gupta @ 2012-12-24 5:21 UTC (permalink / raw) To: viro; +Cc: Vineet Gupta, james.hogan, arnd, torvalds, linux-kernel, linux-arch For arches which include asm-generic/syscalls.h as well as newly introduced CONFIG_GENERIC_SIGALTSTACK, there's a build breakage due to conflicting prototypes of sys_sigaltstack(), due to removal of struct pt_regs from latter based code. ----------------------->8------------------------- In file included from /home/vineetg/arc/upstream-kernel/arch/arc/include/asm/syscalls.h:25, from arch/arc/kernel/sys.c:6: include/asm-generic/syscalls.h:26: error: conflicting types for 'sys_sigaltstack' include/linux/syscalls.h:304: note: previous declaration of 'sys_sigaltstack' was here make[2]: *** [arch/arc/kernel/sys.o] Error 1 ----------------------->8------------------------- Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Cc: james.hogan@imgtec.com Cc: arnd@arndb.de Cc: torvalds@linux-foundation.org Cc: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org --- include/asm-generic/syscalls.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/include/asm-generic/syscalls.h b/include/asm-generic/syscalls.h index 58f466f..1db51b8 100644 --- a/include/asm-generic/syscalls.h +++ b/include/asm-generic/syscalls.h @@ -21,10 +21,12 @@ asmlinkage long sys_mmap(unsigned long addr, unsigned long len, unsigned long fd, off_t pgoff); #endif +#ifndef CONFIG_GENERIC_SIGALTSTACK #ifndef sys_sigaltstack asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *, struct pt_regs *); #endif +#endif #ifndef sys_rt_sigreturn asmlinkage long sys_rt_sigreturn(struct pt_regs *regs); -- 1.7.4.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-12-24 5:22 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-12-21 0:21 [git pull] signal.git pile 2 Al Viro 2012-12-21 6:24 ` CONFIG_GENERIC_SIGALTSTACK with asm-generic/syscalls.h (was Re: [git pull] signal.git pile 2) Vineet Gupta 2012-12-21 7:15 ` Al Viro 2012-12-21 11:52 ` James Hogan 2012-12-21 16:07 ` Al Viro 2012-12-24 5:21 ` [PATCH] CONFIG_GENERIC_SIGALTSTACK build breakage with asm-generic/syscalls.h Vineet Gupta
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).