Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1248082 > unrolled thread
| Started by | Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> |
|---|---|
| First post | 2015-10-15 21:00 +0200 |
| Last post | 2015-10-16 20:20 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] MIPS64: signal: n64 kernel bugfix of MIPS32 o32 ABI sigaction syscall Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> - 2015-10-15 21:00 +0200
Re: [PATCH] MIPS64: signal: n64 kernel bugfix of MIPS32 o32 ABI sigaction syscall Markos Chandras <Markos.Chandras@imgtec.com> - 2015-10-16 10:20 +0200
Re: [PATCH] MIPS64: signal: n64 kernel bugfix of MIPS32 o32 ABI sigaction syscall Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> - 2015-10-16 20:20 +0200
| From | Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> |
|---|---|
| Date | 2015-10-15 21:00 +0200 |
| Subject | [PATCH] MIPS64: signal: n64 kernel bugfix of MIPS32 o32 ABI sigaction syscall |
| Message-ID | <qjVUR-6LD-9@gated-at.bofh.it> |
MIPS32 o32 ABI sigaction() processing on MIPS64 n64 kernel was incorrectly set to processing aka rt_sigaction() variant only. Fixed. Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> --- arch/mips/include/asm/signal.h | 15 ++++++++++++--- arch/mips/kernel/signal.c | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/arch/mips/include/asm/signal.h b/arch/mips/include/asm/signal.h index 003e273eff4c..06fe599782df 100644 --- a/arch/mips/include/asm/signal.h +++ b/arch/mips/include/asm/signal.h @@ -11,11 +11,20 @@ #include <uapi/asm/signal.h> +#ifdef CONFIG_MIPS32_COMPAT +extern struct mips_abi mips_abi_32; -#ifdef CONFIG_TRAD_SIGNALS -#define sig_uses_siginfo(ka) ((ka)->sa.sa_flags & SA_SIGINFO) +#define sig_uses_siginfo(ka, abi) \ + (config_enabled(CONFIG_64BIT) ? \ + (config_enabled(CONFIG_MIPS32_COMPAT) ? \ + (abi != &mips_abi_32) : 1) : \ + (config_enabled(CONFIG_TRAD_SIGNALS) ? \ + ((ka)->sa.sa_flags & SA_SIGINFO) : 1) ) #else -#define sig_uses_siginfo(ka) (1) +#define sig_uses_siginfo(ka, abi) \ + (config_enabled(CONFIG_64BIT) ? 1 : \ + (config_enabled(CONFIG_TRAD_SIGNALS) ? \ + ((ka)->sa.sa_flags & SA_SIGINFO) : 1) ) #endif #include <asm/sigcontext.h> diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index bf792e2839a6..5f18d0b879e0 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c @@ -798,7 +798,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) regs->regs[0] = 0; /* Don't deal with this again. */ } - if (sig_uses_siginfo(&ksig->ka)) + if (sig_uses_siginfo(&ksig->ka, abi)) ret = abi->setup_rt_frame(vdso + abi->vdso->off_rt_sigreturn, ksig, regs, oldset); else -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Markos Chandras <Markos.Chandras@imgtec.com> |
|---|---|
| Date | 2015-10-16 10:20 +0200 |
| Message-ID | <qk8p4-t0-1@gated-at.bofh.it> |
| In reply to | #1248082 |
On 10/15/2015 07:50 PM, Leonid Yegoshin wrote: > MIPS32 o32 ABI sigaction() processing on MIPS64 n64 kernel was incorrectly > set to processing aka rt_sigaction() variant only. > > Fixed. > > Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> > --- > arch/mips/include/asm/signal.h | 15 ++++++++++++--- > arch/mips/kernel/signal.c | 2 +- > 2 files changed, 13 insertions(+), 4 deletions(-) > > diff --git a/arch/mips/include/asm/signal.h b/arch/mips/include/asm/signal.h > index 003e273eff4c..06fe599782df 100644 > --- a/arch/mips/include/asm/signal.h > +++ b/arch/mips/include/asm/signal.h > @@ -11,11 +11,20 @@ > > #include <uapi/asm/signal.h> > > +#ifdef CONFIG_MIPS32_COMPAT > +extern struct mips_abi mips_abi_32; > > -#ifdef CONFIG_TRAD_SIGNALS > -#define sig_uses_siginfo(ka) ((ka)->sa.sa_flags & SA_SIGINFO) > +#define sig_uses_siginfo(ka, abi) \ > + (config_enabled(CONFIG_64BIT) ? \ > + (config_enabled(CONFIG_MIPS32_COMPAT) ? \ > + (abi != &mips_abi_32) : 1) : \ > + (config_enabled(CONFIG_TRAD_SIGNALS) ? \ > + ((ka)->sa.sa_flags & SA_SIGINFO) : 1) ) > #else > -#define sig_uses_siginfo(ka) (1) > +#define sig_uses_siginfo(ka, abi) \ > + (config_enabled(CONFIG_64BIT) ? 1 : \ > + (config_enabled(CONFIG_TRAD_SIGNALS) ? \ > + ((ka)->sa.sa_flags & SA_SIGINFO) : 1) ) > #endif > > #include <asm/sigcontext.h> > diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c > index bf792e2839a6..5f18d0b879e0 100644 > --- a/arch/mips/kernel/signal.c > +++ b/arch/mips/kernel/signal.c > @@ -798,7 +798,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) > regs->regs[0] = 0; /* Don't deal with this again. */ > } > > - if (sig_uses_siginfo(&ksig->ka)) > + if (sig_uses_siginfo(&ksig->ka, abi)) > ret = abi->setup_rt_frame(vdso + abi->vdso->off_rt_sigreturn, > ksig, regs, oldset); > else > Is this similar to https://www.linux-mips.org/archives/linux-mips/2015-08/msg00449.html ? -- markos -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> |
|---|---|
| Date | 2015-10-16 20:20 +0200 |
| Subject | Re: [PATCH] MIPS64: signal: n64 kernel bugfix of MIPS32 o32 ABI sigaction syscall |
| Message-ID | <qkhLH-5ON-7@gated-at.bofh.it> |
| In reply to | #1248451 |
On 10/16/2015 01:11 AM, Markos Chandras wrote: > On 10/15/2015 07:50 PM, Leonid Yegoshin wrote: >> MIPS32 o32 ABI sigaction() processing on MIPS64 n64 kernel was incorrectly >> set to processing aka rt_sigaction() variant only. >> >> Fixed. >> >> Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> >> --- >> arch/mips/include/asm/signal.h | 15 ++++++++++++--- >> arch/mips/kernel/signal.c | 2 +- >> 2 files changed, 13 insertions(+), 4 deletions(-) >> >> diff --git a/arch/mips/include/asm/signal.h b/arch/mips/include/asm/signal.h >> index 003e273eff4c..06fe599782df 100644 >> --- a/arch/mips/include/asm/signal.h >> +++ b/arch/mips/include/asm/signal.h >> @@ -11,11 +11,20 @@ >> >> #include <uapi/asm/signal.h> >> >> +#ifdef CONFIG_MIPS32_COMPAT >> +extern struct mips_abi mips_abi_32; >> >> -#ifdef CONFIG_TRAD_SIGNALS >> -#define sig_uses_siginfo(ka) ((ka)->sa.sa_flags & SA_SIGINFO) >> +#define sig_uses_siginfo(ka, abi) \ >> + (config_enabled(CONFIG_64BIT) ? \ >> + (config_enabled(CONFIG_MIPS32_COMPAT) ? \ >> + (abi != &mips_abi_32) : 1) : \ >> + (config_enabled(CONFIG_TRAD_SIGNALS) ? \ >> + ((ka)->sa.sa_flags & SA_SIGINFO) : 1) ) >> #else >> -#define sig_uses_siginfo(ka) (1) >> +#define sig_uses_siginfo(ka, abi) \ >> + (config_enabled(CONFIG_64BIT) ? 1 : \ >> + (config_enabled(CONFIG_TRAD_SIGNALS) ? \ >> + ((ka)->sa.sa_flags & SA_SIGINFO) : 1) ) >> #endif >> >> #include <asm/sigcontext.h> >> diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c >> index bf792e2839a6..5f18d0b879e0 100644 >> --- a/arch/mips/kernel/signal.c >> +++ b/arch/mips/kernel/signal.c >> @@ -798,7 +798,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) >> regs->regs[0] = 0; /* Don't deal with this again. */ >> } >> >> - if (sig_uses_siginfo(&ksig->ka)) >> + if (sig_uses_siginfo(&ksig->ka, abi)) >> ret = abi->setup_rt_frame(vdso + abi->vdso->off_rt_sigreturn, >> ksig, regs, oldset); >> else >> > Is this similar to > > https://www.linux-mips.org/archives/linux-mips/2015-08/msg00449.html ? > It is similar but not exact copy - my patch follows an exact rules and for exam - doesn't check SA_SIGINFO for n32/n64 ABI. It checks only for o32. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web