diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c index 0d8811e26c29..9c2b1d42bd35 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_pp.c +++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c @@ -3264,6 +3264,8 @@ int mdss_mdp_pp_overlay_init(struct msm_fb_data_type *mfd) pr_err("Invalid mfd %pK mdata %pK\n", mfd, mdata); return -EPERM; } + if (mfd->index >= (MDP_BLOCK_MAX - MDP_LOGICAL_BLOCK_DISP_0)) + return 0; if (mdata->nad_cfgs) mfd->mdp.ad_calc_bl = pp_ad_calc_bl; @@ -7641,6 +7643,13 @@ static int pp_mfd_release_all(struct msm_fb_data_type *mfd) { struct mdss_data_type *mdata = mdss_mdp_get_mdata(); int ret = 0; + if (!mfd || !mdata) { + pr_err("Invalid mfd %pK mdata %pK\n", mfd, mdata); + return -EPERM; + } + + if (mfd->index >= (MDP_BLOCK_MAX - MDP_LOGICAL_BLOCK_DISP_0)) + return ret; if (mdata->nad_cfgs) { ret = pp_mfd_ad_release_all(mfd);