From 6e8d77cd33cae5d5aef6f0842973a49d85e29f34 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Mon, 17 Aug 2020 13:19:25 -0700 Subject: [PATCH] mhi: core: Add NULL check in mhi_get_exec_env In case power up failed due to incorrect bhi offset bhi pointer in mhi controller remains NULL. Later if MHI controller forces RDDM it checks the execution environment by accessing the BHI offset. This results into NULL pointer dereference. Fix this by adding NULL check for both mhi controller and bhi pointer before reading the BHI offset. Change-Id: I93f8918d7d595a77a5c8bcb6fd610f1a2b484fc4 Signed-off-by: Hemant Kumar --- drivers/bus/mhi/core/mhi_main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/bus/mhi/core/mhi_main.c b/drivers/bus/mhi/core/mhi_main.c index 7b1b95daa6ee..dcb4b31caea8 100644 --- a/drivers/bus/mhi/core/mhi_main.c +++ b/drivers/bus/mhi/core/mhi_main.c @@ -244,8 +244,13 @@ static enum mhi_ee mhi_translate_dev_ee(struct mhi_controller *mhi_cntrl, enum mhi_ee mhi_get_exec_env(struct mhi_controller *mhi_cntrl) { + int ret; u32 exec; - int ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_EXECENV, &exec); + + if (!mhi_cntrl || !mhi_cntrl->bhi) + return MHI_EE_MAX; + + ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_EXECENV, &exec); return (ret) ? MHI_EE_MAX : mhi_translate_dev_ee(mhi_cntrl, exec); }