From 1a8ca08cc037c65c605e7e2f98b8c01606eaca3b Mon Sep 17 00:00:00 2001 From: Atish Patra Date: Tue, 11 Feb 2020 17:39:45 -0800 Subject: [PATCH] lib: Initialize out value in SBI calls As per the SBI specification, the return value in sbiret is undefined if not explicitly described in the function. However, supervisor may check this value by mistake and get a garbage value. Initialize it to zero to avoid nasty supervisor bugs. Signed-off-by: Atish Patra Reviewed-by: Anup Patel --- lib/sbi/sbi_ecall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sbi/sbi_ecall.c b/lib/sbi/sbi_ecall.c index e52a6547..82397c4b 100644 --- a/lib/sbi/sbi_ecall.c +++ b/lib/sbi/sbi_ecall.c @@ -79,7 +79,7 @@ int sbi_ecall_handler(u32 hartid, ulong mcause, struct sbi_trap_regs *regs, unsigned long extension_id = regs->a7; unsigned long func_id = regs->a6; struct sbi_trap_info trap = {0}; - unsigned long out_val; + unsigned long out_val = 0; bool is_0_1_spec = 0; unsigned long args[6];