[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 4 Apr 2020 18:01:00 +0200
From: Oleg Nesterov <oleg@...hat.com>
To: Nick Desaulniers <ndesaulniers@...gle.com>
Cc: tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
Peter Zijlstra <peterz@...radead.org>,
clang-built-linux@...glegroups.com,
Linus Torvalds <torvalds@...ux-foundation.org>,
"H. Peter Anvin" <hpa@...or.com>, x86@...nel.org,
Al Viro <viro@...iv.linux.org.uk>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
Andy Lutomirski <luto@...nel.org>,
Sami Tolvanen <samitolvanen@...gle.com>,
Marco Elver <elver@...gle.com>,
Brian Gerst <brgerst@...il.com>, Arnd Bergmann <arnd@...db.de>,
Andrew Morton <akpm@...ux-foundation.org>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] x86: signal: move save_altstack_ex out of generic
headers
On 04/03, Nick Desaulniers wrote:
>
> --- a/arch/x86/kernel/signal.c
> +++ b/arch/x86/kernel/signal.c
> @@ -416,6 +416,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
> return 0;
> Efault:
> user_access_end();
> + reset_altstack();
> return -EFAULT;
> }
> #else /* !CONFIG_X86_32 */
> @@ -507,6 +508,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
>
> Efault:
> user_access_end();
> + reset_altstack();
> return -EFAULT;
> }
I must have missed something, but this looks just wrong.
reset_altstack() should be called when __setup_rt_frame() (and
unsafe_save_altstack() in particular) succeeds, not when it fails.
Nevermind, Al has already suggested to use signal_delivered()...
Oleg.
Powered by blists - more mailing lists