lib: sbi: sbi_ecall: Check the range of SBI error
authorYu Chien Peter Lin <peterlin@andestech.com>
Wed, 22 Feb 2023 02:48:54 +0000 (10:48 +0800)
committerAnup Patel <anup@brainfault.org>
Mon, 27 Feb 2023 06:16:08 +0000 (11:46 +0530)
We should also check if the return error code is greater than 0
(SBI_SUCCESS), as this is an invalid error.

Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
Reviewed-by: Xiang W <wxjstz@126.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
lib/sbi/sbi_ecall.c

index 27ce5d4..d0f0166 100644 (file)
@@ -120,7 +120,7 @@ int sbi_ecall_handler(struct sbi_trap_regs *regs)
                trap.epc = regs->mepc;
                sbi_trap_redirect(regs, &trap);
        } else {
-               if (ret < SBI_LAST_ERR) {
+               if (ret < SBI_LAST_ERR || SBI_SUCCESS < ret) {
                        sbi_printf("%s: Invalid error %d for ext=0x%lx "
                                   "func=0x%lx\n", __func__, ret,
                                   extension_id, func_id);