summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPing Li <quicpingli@codeaurora.org>2013-09-04 16:56:01 -0400
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:20:34 -0700
commit299ec7f77025d17da30cbb60023ea4766a2ed4eb (patch)
tree4b0a6bf2fc77297d9f2b1e8cfa50688348e80e58
parent9bba658d2c6a97ff35e83ecfbca1d021bb30a4a8 (diff)
msm: mdss: Reorder code to avoid null pointer dereference
Set mdss_res to NULL after mdss_mdp_pp_term function in err case inside mdss_mdp_probe function. This change can avoid null pointer dereference if err occurs during mdss_mdp_probe. Change-Id: I90b289e03f2711d45dcb80d9fa6eeb78b447cfd4 Signed-off-by: Ping Li <quicpingli@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp.c2
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_overlay.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp.c b/drivers/video/fbdev/msm/mdss_mdp.c
index f02ce0dcf5c2..d49d2babf0bd 100644
--- a/drivers/video/fbdev/msm/mdss_mdp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp.c
@@ -1213,8 +1213,8 @@ static int mdss_mdp_probe(struct platform_device *pdev)
probe_done:
if (IS_ERR_VALUE(rc)) {
mdss_mdp_hw.ptr = NULL;
- mdss_res = NULL;
mdss_mdp_pp_term(&pdev->dev);
+ mdss_res = NULL;
}
return rc;
diff --git a/drivers/video/fbdev/msm/mdss_mdp_overlay.c b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
index 4897d5dac36d..7fccdb46f880 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_overlay.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
@@ -1927,9 +1927,12 @@ static int mdss_mdp_histo_ioctl(struct msm_fb_data_type *mfd, u32 cmd,
if (ret)
return ret;
- pp_bus_handle = mdss_mdp_get_mdata()->pp_bus_hdl;
ret = mdss_mdp_histogram_stop(mdp5_data->ctl, block);
+ if (ret)
+ return ret;
+
if (!req) {
+ pp_bus_handle = mdss_mdp_get_mdata()->pp_bus_hdl;
req = msm_bus_scale_client_update_request(pp_bus_handle,
PP_CLK_CFG_OFF);
if (req)