summaryrefslogtreecommitdiff
path: root/lib/sbi/sbi_trap.c
diff options
context:
space:
mode:
authorXiang W <wxjstz@126.com>2021-03-30 15:07:35 +0300
committerAnup Patel <anup@brainfault.org>2021-04-01 08:18:35 +0300
commit4ef2f5d3e6b25356a8fab19574bed76ce60edeee (patch)
tree3b00b17d3ef93d4b8bb968f151810d179d0cb2ba /lib/sbi/sbi_trap.c
parent4edc8224073e61498b1de338c67174f47fc3c5e1 (diff)
downloadopensbi-4ef2f5d3e6b25356a8fab19574bed76ce60edeee.tar.xz
firware: optimize the exception exit code
There are two copies of the same abnormal exit code, this patch deletes one Signed-off-by: Xiang W <wxjstz@126.com> Reviewed-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'lib/sbi/sbi_trap.c')
-rw-r--r--lib/sbi/sbi_trap.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/sbi/sbi_trap.c b/lib/sbi/sbi_trap.c
index b7349d2..1ba6490 100644
--- a/lib/sbi/sbi_trap.c
+++ b/lib/sbi/sbi_trap.c
@@ -210,7 +210,7 @@ int sbi_trap_redirect(struct sbi_trap_regs *regs,
*
* @param regs pointer to register state
*/
-void sbi_trap_handler(struct sbi_trap_regs *regs)
+struct sbi_trap_regs *sbi_trap_handler(struct sbi_trap_regs *regs)
{
int rc = SBI_ENOTSUPP;
const char *msg = "trap handler failed";
@@ -236,7 +236,7 @@ void sbi_trap_handler(struct sbi_trap_regs *regs)
msg = "unhandled external interrupt";
goto trap_error;
};
- return;
+ return regs;
}
switch (mcause) {
@@ -271,6 +271,7 @@ void sbi_trap_handler(struct sbi_trap_regs *regs)
trap_error:
if (rc)
sbi_trap_error(msg, rc, mcause, mtval, mtval2, mtinst, regs);
+ return regs;
}
typedef void (*trap_exit_t)(const struct sbi_trap_regs *regs);