From f5dfd991396891d87d7780be45f887bc9ed13099 Mon Sep 17 00:00:00 2001 From: Anup Patel Date: Mon, 17 Apr 2023 09:48:13 +0530 Subject: [PATCH] lib: sbi: Don't check SBI error range for legacy console getchar The legacy console getchar SBI call returns character value in the sbiret.error field so the "SBI_SUCCESS < ret" check in sbi_ecall_handler() results in unwanted error prints for the legacy console getchar SBI call. Let's suppress these unwanted error prints. Fixes: 67b2a408924b ("lib: sbi: sbi_ecall: Check the range of SBI error") Signed-off-by: Anup Patel --- lib/sbi/sbi_ecall.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/sbi/sbi_ecall.c b/lib/sbi/sbi_ecall.c index d0f0166..76a1ae9 100644 --- a/lib/sbi/sbi_ecall.c +++ b/lib/sbi/sbi_ecall.c @@ -120,7 +120,9 @@ int sbi_ecall_handler(struct sbi_trap_regs *regs) trap.epc = regs->mepc; sbi_trap_redirect(regs, &trap); } else { - if (ret < SBI_LAST_ERR || SBI_SUCCESS < ret) { + if (ret < SBI_LAST_ERR || + (extension_id != SBI_EXT_0_1_CONSOLE_GETCHAR && + SBI_SUCCESS < ret)) { sbi_printf("%s: Invalid error %d for ext=0x%lx " "func=0x%lx\n", __func__, ret, extension_id, func_id);