From: Thomas Gleixner <tglx@linutronix.de>
To: Andy Lutomirski <luto@kernel.org>, x86@kernel.org
Cc: LKML <linux-kernel@vger.kernel.org>,
Andy Lutomirski <luto@kernel.org>,
stable@vger.kernel.org
Subject: Re: [PATCH v2 2/3] x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls
Date: Mon, 01 Mar 2021 16:36:40 +0100 [thread overview]
Message-ID: <87h7luubqv.fsf@nanos.tec.linutronix.de> (raw)
In-Reply-To: <04713c6be5ab45357e3406c42d382536f52a64c6.1614104065.git.luto@kernel.org>
On Tue, Feb 23 2021 at 10:15, Andy Lutomirski wrote:
> On a 32-bit fast syscall that fails to read its arguments from user
> memory, the kernel currently does syscall exit work but not
> syscall entry work. This confuses audit and ptrace. For example:
>
> $ ./tools/testing/selftests/x86/syscall_arg_fault_32
> ...
> strace: pid 264258: entering, ptrace_syscall_info.op == 2
> ...
>
> This is a minimal fix intended for ease of backporting. A more
> complete cleanup is coming.
>
> Cc: stable@vger.kernel.org
> Fixes: 0b085e68f407 ("x86/entry: Consolidate 32/64 bit syscall entry")
> Signed-off-by: Andy Lutomirski <luto@kernel.org>
> ---
> arch/x86/entry/common.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c
> index 0904f5676e4d..cf4dcf346ca8 100644
> --- a/arch/x86/entry/common.c
> +++ b/arch/x86/entry/common.c
> @@ -128,7 +128,8 @@ static noinstr bool __do_fast_syscall_32(struct pt_regs *regs)
> regs->ax = -EFAULT;
>
> instrumentation_end();
> - syscall_exit_to_user_mode(regs);
> + local_irq_disable();
> + exit_to_user_mode();
That's still the same as the previous version. The right function (while
the name is misleading) to invoke here is irqentry_exit_to_user_mode()
because that invokes exit_to_user_mode_prepare() before
exit_to_user_mode(). We can rename that function afterwards.
Thanks,
tglx
next prev parent reply other threads:[~2021-03-01 15:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-23 18:15 [PATCH v2 0/3] x86/entry: A compat syscall bugfix and some test stuff Andy Lutomirski
2021-02-23 18:15 ` [PATCH v2 1/3] entry: Check that syscall entries and syscall exits match Andy Lutomirski
2021-02-23 18:15 ` [PATCH v2 2/3] x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls Andy Lutomirski
2021-03-01 15:36 ` Thomas Gleixner [this message]
2021-02-23 18:15 ` [PATCH v2 3/3] selftests/x86: Add a missing .note.GNU-stack section to thunks_32.S Andy Lutomirski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87h7luubqv.fsf@nanos.tec.linutronix.de \
--to=tglx@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=stable@vger.kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.