From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Michael Ellerman <mpe@ellerman.id.au>,
npiggin@gmail.com, msuchanek@suse.de
Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: [PATCH v4 20/23] powerpc/syscall: Do not check unsupported scv vector on PPC32
Date: Mon, 25 Jan 2021 14:48:33 +0000 (UTC) [thread overview]
Message-ID: <f02af988a86f7e83b6492df7c4fa1b53bcd1919b.1611585031.git.christophe.leroy@csgroup.eu> (raw)
In-Reply-To: <cover.1611585031.git.christophe.leroy@csgroup.eu>
Only PPC64 has scv. No need to check the 0x7ff0 trap on PPC32.
And ignore the scv parameter in syscall_exit_prepare (Save 14 cycles
346 => 332 cycles)
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
arch/powerpc/kernel/entry_32.S | 1 -
arch/powerpc/kernel/syscall.c | 7 +++++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index 9922a04650f7..6ae9c7bcb06c 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -343,7 +343,6 @@ transfer_to_syscall:
ret_from_syscall:
addi r4,r1,STACK_FRAME_OVERHEAD
- li r5,0
bl syscall_exit_prepare
#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
/* If the process has its own DBCR0 value, load it up. The internal
diff --git a/arch/powerpc/kernel/syscall.c b/arch/powerpc/kernel/syscall.c
index 476909b11051..30f8a397a522 100644
--- a/arch/powerpc/kernel/syscall.c
+++ b/arch/powerpc/kernel/syscall.c
@@ -86,7 +86,7 @@ notrace long system_call_exception(long r3, long r4, long r5,
local_irq_enable();
if (unlikely(current_thread_info()->flags & _TIF_SYSCALL_DOTRACE)) {
- if (unlikely(regs->trap == 0x7ff0)) {
+ if (IS_ENABLED(CONFIG_PPC64) && unlikely(regs->trap == 0x7ff0)) {
/* Unsupported scv vector */
_exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
return regs->gpr[3];
@@ -109,7 +109,7 @@ notrace long system_call_exception(long r3, long r4, long r5,
r8 = regs->gpr[8];
} else if (unlikely(r0 >= NR_syscalls)) {
- if (unlikely(regs->trap == 0x7ff0)) {
+ if (IS_ENABLED(CONFIG_PPC64) && unlikely(regs->trap == 0x7ff0)) {
/* Unsupported scv vector */
_exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
return regs->gpr[3];
@@ -187,6 +187,9 @@ notrace unsigned long syscall_exit_prepare(unsigned long r3,
unsigned long ti_flags;
unsigned long ret = 0;
+ if (IS_ENABLED(CONFIG_PPC32))
+ scv = 0;
+
CT_WARN_ON(ct_state() == CONTEXT_USER);
kuap_check();
--
2.25.0
next prev parent reply other threads:[~2021-01-25 15:05 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-25 14:48 [PATCH v4 00/23] powerpc/32: Implement C syscall entry/exit Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 01/23] powerpc/32s: Add missing call to kuep_lock on syscall entry Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 02/23] powerpc/32: Always enable data translation " Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 03/23] powerpc/32: On syscall entry, enable instruction translation at the same time as data Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 04/23] powerpc/32: Reorder instructions to avoid using CTR in syscall entry Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 05/23] powerpc/64s: Make kuap_check_amr() and kuap_get_and_check_amr() generic Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 06/23] powerpc/32s: Create C version of kuap_user/kernel_restore() and friends Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 07/23] powerpc/8xx: " Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 08/23] powerpc/irq: Add helper to set regs->softe Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 09/23] powerpc/irq: Rework helpers that manipulate MSR[EE/RI] Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 10/23] powerpc/irq: Add stub irq_soft_mask_return() for PPC32 Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 11/23] powerpc/syscall: Rename syscall_64.c into syscall.c Christophe Leroy
2021-01-26 10:21 ` Nicholas Piggin
2021-01-26 10:28 ` David Laight
2021-01-27 23:50 ` Nicholas Piggin
2021-02-02 6:15 ` Christophe Leroy
2021-02-02 6:38 ` Nicholas Piggin
2021-02-02 6:58 ` Christophe Leroy
2021-02-02 20:10 ` Segher Boessenkool
2021-02-08 17:47 ` Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 12/23] powerpc/syscall: Make syscall.c buildable on PPC32 Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 13/23] powerpc/syscall: Use is_compat_task() Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 14/23] powerpc/syscall: Save r3 in regs->orig_r3 Christophe Leroy
2021-01-26 10:18 ` Nicholas Piggin
2021-02-08 17:47 ` Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 15/23] powerpc/syscall: Change condition to check MSR_RI Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 16/23] powerpc/32: Always save non volatile GPRs at syscall entry Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 17/23] powerpc/syscall: implement system call entry/exit logic in C for PPC32 Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 18/23] powerpc/32: Remove verification of MSR_PR on syscall in the ASM entry Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 19/23] powerpc/syscall: Avoid stack frame in likely part of system_call_exception() Christophe Leroy
2021-01-26 10:14 ` Nicholas Piggin
2021-01-25 14:48 ` Christophe Leroy [this message]
2021-01-26 10:16 ` [PATCH v4 20/23] powerpc/syscall: Do not check unsupported scv vector on PPC32 Nicholas Piggin
2021-02-08 17:45 ` Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 21/23] powerpc/syscall: Remove FULL_REGS verification in system_call_exception Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 22/23] powerpc/syscall: Optimise checks in beginning of system_call_exception() Christophe Leroy
2021-01-25 14:48 ` [PATCH v4 23/23] powerpc/syscall: Avoid storing 'current' in another pointer Christophe Leroy
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=f02af988a86f7e83b6492df7c4fa1b53bcd1919b.1611585031.git.christophe.leroy@csgroup.eu \
--to=christophe.leroy@csgroup.eu \
--cc=benh@kernel.crashing.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=msuchanek@suse.de \
--cc=npiggin@gmail.com \
--cc=paulus@samba.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 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).