From: Jisheng Zhang <jszhang@kernel.org>
To: Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Samuel Holland <samuel.holland@sifive.com>
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: [PATCH 2/6] riscv: avoid corrupting the RAS
Date: Mon, 17 Jun 2024 01:05:49 +0800 [thread overview]
Message-ID: <20240616170553.2832-3-jszhang@kernel.org> (raw)
In-Reply-To: <20240616170553.2832-1-jszhang@kernel.org>
Inspired by[1], "modifying the return address of to point to
ret_from_exception will corrupt the RAS", so modify the code
to remove the code of modifying ra.
Link: https://lore.kernel.org/linux-riscv/20240607061335.2197383-1-cyrilbur@tenstorrent.com/ [1]
Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---
arch/riscv/kernel/entry.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S
index c933460ed3e9..81dec627a8d4 100644
--- a/arch/riscv/kernel/entry.S
+++ b/arch/riscv/kernel/entry.S
@@ -235,8 +235,8 @@ SYM_CODE_START(ret_from_fork)
jalr s0
1:
move a0, sp /* pt_regs */
- la ra, ret_from_exception
- tail syscall_exit_to_user_mode
+ call syscall_exit_to_user_mode
+ j ret_from_exception
SYM_CODE_END(ret_from_fork)
#ifdef CONFIG_IRQ_STACKS
--
2.43.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Jisheng Zhang <jszhang@kernel.org>
To: Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Samuel Holland <samuel.holland@sifive.com>
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: [PATCH 2/6] riscv: avoid corrupting the RAS
Date: Mon, 17 Jun 2024 01:05:49 +0800 [thread overview]
Message-ID: <20240616170553.2832-3-jszhang@kernel.org> (raw)
In-Reply-To: <20240616170553.2832-1-jszhang@kernel.org>
Inspired by[1], "modifying the return address of to point to
ret_from_exception will corrupt the RAS", so modify the code
to remove the code of modifying ra.
Link: https://lore.kernel.org/linux-riscv/20240607061335.2197383-1-cyrilbur@tenstorrent.com/ [1]
Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---
arch/riscv/kernel/entry.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S
index c933460ed3e9..81dec627a8d4 100644
--- a/arch/riscv/kernel/entry.S
+++ b/arch/riscv/kernel/entry.S
@@ -235,8 +235,8 @@ SYM_CODE_START(ret_from_fork)
jalr s0
1:
move a0, sp /* pt_regs */
- la ra, ret_from_exception
- tail syscall_exit_to_user_mode
+ call syscall_exit_to_user_mode
+ j ret_from_exception
SYM_CODE_END(ret_from_fork)
#ifdef CONFIG_IRQ_STACKS
--
2.43.0
next prev parent reply other threads:[~2024-06-16 17:20 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-16 17:05 [PATCH 0/6] riscv: convert bottom half of exception handling to C Jisheng Zhang
2024-06-16 17:05 ` Jisheng Zhang
2024-06-16 17:05 ` [PATCH 1/6] riscv: Improve exception and system call latency Jisheng Zhang
2024-06-16 17:05 ` Jisheng Zhang
2024-06-22 0:15 ` Charlie Jenkins
2024-06-22 0:15 ` Charlie Jenkins
2024-06-22 0:50 ` Jisheng Zhang
2024-06-22 0:50 ` Jisheng Zhang
2024-06-16 17:05 ` Jisheng Zhang [this message]
2024-06-16 17:05 ` [PATCH 2/6] riscv: avoid corrupting the RAS Jisheng Zhang
2024-06-19 23:02 ` Cyril Bur
2024-06-19 23:02 ` Cyril Bur
2024-06-16 17:05 ` [PATCH 3/6] riscv: convert bottom half of exception handling to C Jisheng Zhang
2024-06-16 17:05 ` Jisheng Zhang
2024-06-19 17:04 ` Deepak Gupta
2024-06-19 17:04 ` Deepak Gupta
2024-06-20 0:02 ` Cyril Bur
2024-06-20 0:02 ` Cyril Bur
2024-06-20 8:06 ` Clément Léger
2024-06-20 8:06 ` Clément Léger
2024-06-20 23:56 ` Jisheng Zhang
2024-06-20 23:56 ` Jisheng Zhang
2024-06-21 19:02 ` Deepak Gupta
2024-06-21 19:02 ` Deepak Gupta
2024-06-20 23:10 ` Cyril Bur
2024-06-20 23:10 ` Cyril Bur
2024-06-20 23:49 ` Jisheng Zhang
2024-06-20 23:49 ` Jisheng Zhang
2024-06-24 18:49 ` [PATCH 3/6] " Charlie Jenkins
2024-06-24 18:49 ` Charlie Jenkins
2024-06-24 23:10 ` Cyril Bur
2024-06-24 23:10 ` Cyril Bur
2024-06-16 17:05 ` [PATCH 4/6] riscv: errata: remove ALT_INSN_FAULT and ALT_PAGE_FAULT Jisheng Zhang
2024-06-16 17:05 ` Jisheng Zhang
2024-06-16 17:05 ` [PATCH 5/6] riscv: errata: sifive: remove NOMMU handling Jisheng Zhang
2024-06-16 17:05 ` Jisheng Zhang
2024-06-16 17:05 ` [PATCH 6/6] riscv: remove asmlinkage from updated functions Jisheng Zhang
2024-06-16 17:05 ` Jisheng Zhang
2024-06-24 18:53 ` Charlie Jenkins
2024-06-24 18:53 ` Charlie Jenkins
2024-06-18 22:16 ` [PATCH 0/6] riscv: convert bottom half of exception handling to C Cyril Bur
2024-06-18 22:16 ` Cyril Bur
2024-06-19 15:11 ` Jisheng Zhang
2024-06-19 15:11 ` Jisheng Zhang
2024-06-19 23:59 ` [CAUTION - External Sender] " Cyril Bur
2024-06-19 23:59 ` Cyril Bur
2024-06-19 16:30 ` Deepak Gupta
2024-06-19 16:30 ` Deepak Gupta
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=20240616170553.2832-3-jszhang@kernel.org \
--to=jszhang@kernel.org \
--cc=aou@eecs.berkeley.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=samuel.holland@sifive.com \
/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.