SDEI: Fix determining client EL
authorJeenu Viswambharan <[email protected]>
Fri, 22 Jun 2018 11:00:20 +0000 (12:00 +0100)
committerJeenu Viswambharan <[email protected]>
Fri, 22 Jun 2018 11:00:20 +0000 (12:00 +0100)
commit 2ccfcb2ea555eb86122e7780010cc50fcee08f54 ("SDEI: Determine client
EL from NS context's SCR_EL3") intended to read from SCR_EL3, but
wrongly read from SPSR_EL3 instead. This patch fixes that.

Change-Id: I8ffea39cc98ef59cb8e7a4c6ef4cb12011c58536
Signed-off-by: Jeenu Viswambharan <[email protected]>
services/std_svc/sdei/sdei_private.h

index ea602878be185d54fcb95f5b54a3e2094a3609a3..874fc22db8337d6e7e3074c90feb0be9eca557cd 100644 (file)
@@ -164,7 +164,7 @@ static inline unsigned int sdei_client_el(void)
        cpu_context_t *ns_ctx = cm_get_context(NON_SECURE);
        el3_state_t *el3_ctx = get_el3state_ctx(ns_ctx);
 
-       return read_ctx_reg(el3_ctx, CTX_SPSR_EL3) & SCR_HCE_BIT ? MODE_EL2 :
+       return read_ctx_reg(el3_ctx, CTX_SCR_EL3) & SCR_HCE_BIT ? MODE_EL2 :
                MODE_EL1;
 }