From 299ec7f77025d17da30cbb60023ea4766a2ed4eb Mon Sep 17 00:00:00 2001 From: Ping Li Date: Wed, 4 Sep 2013 16:56:01 -0400 Subject: 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 --- drivers/video/fbdev/msm/mdss_mdp.c | 2 +- drivers/video/fbdev/msm/mdss_mdp_overlay.c | 5 ++++- 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) -- cgit v1.2.3