diff --git a/include/asm-alpha/signal.h b/include/asm-alpha/signal.h --- a/include/asm-alpha/signal.h +++ b/include/asm-alpha/signal.h @@ -99,6 +99,10 @@ typedef unsigned long sigset_t; #define SA_ONESHOT SA_RESETHAND #define SA_NOMASK SA_NODEFER #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT /* * sigaltstack controls diff --git a/include/asm-arm/signal.h b/include/asm-arm/signal.h --- a/include/asm-arm/signal.h +++ b/include/asm-arm/signal.h @@ -102,6 +102,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT /* diff --git a/include/asm-arm26/signal.h b/include/asm-arm26/signal.h --- a/include/asm-arm26/signal.h +++ b/include/asm-arm26/signal.h @@ -102,6 +102,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT /* diff --git a/include/asm-cris/signal.h b/include/asm-cris/signal.h --- a/include/asm-cris/signal.h +++ b/include/asm-cris/signal.h @@ -96,6 +96,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-frv/signal.h b/include/asm-frv/signal.h --- a/include/asm-frv/signal.h +++ b/include/asm-frv/signal.h @@ -95,6 +95,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-h8300/signal.h b/include/asm-h8300/signal.h --- a/include/asm-h8300/signal.h +++ b/include/asm-h8300/signal.h @@ -95,6 +95,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-i386/signal.h b/include/asm-i386/signal.h --- a/include/asm-i386/signal.h +++ b/include/asm-i386/signal.h @@ -98,6 +98,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-ia64/signal.h b/include/asm-ia64/signal.h --- a/include/asm-ia64/signal.h +++ b/include/asm-ia64/signal.h @@ -77,6 +77,10 @@ #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-m32r/signal.h b/include/asm-m32r/signal.h --- a/include/asm-m32r/signal.h +++ b/include/asm-m32r/signal.h @@ -102,6 +102,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-m68k/signal.h b/include/asm-m68k/signal.h --- a/include/asm-m68k/signal.h +++ b/include/asm-m68k/signal.h @@ -95,6 +95,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT /* * sigaltstack controls diff --git a/include/asm-m68knommu/signal.h b/include/asm-m68knommu/signal.h --- a/include/asm-m68knommu/signal.h +++ b/include/asm-m68knommu/signal.h @@ -95,6 +95,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT /* * sigaltstack controls diff --git a/include/asm-mips/signal.h b/include/asm-mips/signal.h --- a/include/asm-mips/signal.h +++ b/include/asm-mips/signal.h @@ -86,6 +86,10 @@ typedef unsigned long old_sigset_t; /* #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 /* Only for o32 */ diff --git a/include/asm-parisc/signal.h b/include/asm-parisc/signal.h --- a/include/asm-parisc/signal.h +++ b/include/asm-parisc/signal.h @@ -70,6 +70,10 @@ #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 /* obsolete -- ignored */ diff --git a/include/asm-ppc/signal.h b/include/asm-ppc/signal.h --- a/include/asm-ppc/signal.h +++ b/include/asm-ppc/signal.h @@ -88,6 +88,10 @@ typedef struct { #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-ppc64/signal.h b/include/asm-ppc64/signal.h --- a/include/asm-ppc64/signal.h +++ b/include/asm-ppc64/signal.h @@ -85,6 +85,10 @@ typedef struct { #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000u /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000u diff --git a/include/asm-s390/signal.h b/include/asm-s390/signal.h --- a/include/asm-s390/signal.h +++ b/include/asm-s390/signal.h @@ -105,6 +105,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-sh/signal.h b/include/asm-sh/signal.h --- a/include/asm-sh/signal.h +++ b/include/asm-sh/signal.h @@ -96,6 +96,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-sh64/signal.h b/include/asm-sh64/signal.h --- a/include/asm-sh64/signal.h +++ b/include/asm-sh64/signal.h @@ -95,6 +95,10 @@ typedef struct { #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-sparc/signal.h b/include/asm-sparc/signal.h --- a/include/asm-sparc/signal.h +++ b/include/asm-sparc/signal.h @@ -142,6 +142,10 @@ struct sigstack { #define SA_RESTART _SV_INTR #define SA_ONESHOT _SV_RESET #define SA_INTERRUPT 0x10u +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_NOMASK 0x20u #define SA_NOCLDWAIT 0x100u #define SA_SIGINFO 0x200u diff --git a/include/asm-sparc64/signal.h b/include/asm-sparc64/signal.h --- a/include/asm-sparc64/signal.h +++ b/include/asm-sparc64/signal.h @@ -144,6 +144,10 @@ struct sigstack { #define SA_RESTART _SV_INTR #define SA_ONESHOT _SV_RESET #define SA_INTERRUPT 0x10u +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_NOMASK 0x20u #define SA_NOCLDWAIT 0x100u #define SA_SIGINFO 0x200u diff --git a/include/asm-v850/signal.h b/include/asm-v850/signal.h --- a/include/asm-v850/signal.h +++ b/include/asm-v850/signal.h @@ -98,6 +98,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-x86_64/signal.h b/include/asm-x86_64/signal.h --- a/include/asm-x86_64/signal.h +++ b/include/asm-x86_64/signal.h @@ -104,6 +104,10 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/include/asm-xtensa/signal.h b/include/asm-xtensa/signal.h --- a/include/asm-xtensa/signal.h +++ b/include/asm-xtensa/signal.h @@ -96,6 +96,10 @@ typedef struct { #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +/* + * Let's reuse SA_INTERRUPT since it is unused anymore + */ +#define SA_NOPRNOTIF SA_INTERRUPT #define SA_RESTORER 0x04000000 diff --git a/kernel/signal.c b/kernel/signal.c --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1849,7 +1849,11 @@ relock: if (!signr) break; /* will return 0 */ - if ((current->ptrace & PT_PTRACED) && signr != SIGKILL) { + ka = ¤t->sighand->action[signr-1]; + + if ((current->ptrace & PT_PTRACED) && (signr != SIGKILL) + && !(ka->sa.sa_flags & SA_NOPRNOTIF)) + { ptrace_signal_deliver(regs, cookie); /* Let the debugger run. */