* [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).