Loading drivers/video/msm/mdss/mdss_fb.c +7 −2 Original line number Diff line number Diff line Loading @@ -4063,7 +4063,7 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, goto err; } else if (layer_count) { buffer_size = sizeof(struct mdp_input_layer) * layer_count; layer_list = kmalloc(buffer_size, GFP_KERNEL); layer_list = kzalloc(buffer_size, GFP_KERNEL); if (!layer_list) { pr_err("unable to allocate memory for layers\n"); ret = -ENOMEM; Loading @@ -4080,6 +4080,7 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, for (i = 0; i < layer_count; i++) { layer = &layer_list[i]; scale = NULL; if (!(layer->flags & MDP_LAYER_PP)) { layer->pp_info = NULL; Loading @@ -4097,10 +4098,11 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, continue; } scale = kmalloc(sizeof(struct mdp_scale_data), scale = kzalloc(sizeof(struct mdp_scale_data), GFP_KERNEL); if (!scale) { pr_err("unable to allocate memory for overlays\n"); mdss_mdp_free_layer_pp_info(layer); ret = -ENOMEM; goto err; } Loading @@ -4111,6 +4113,8 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, pr_err("layer list copy from user failed, scale = %p\n", layer->scale); kfree(scale); scale = NULL; mdss_mdp_free_layer_pp_info(layer); ret = -EFAULT; goto err; } Loading Loading @@ -4141,6 +4145,7 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, err: for (i--; i >= 0; i--) { kfree(layer_list[i].scale); layer_list[i].scale = NULL; mdss_mdp_free_layer_pp_info(&layer_list[i]); } kfree(layer_list); Loading drivers/video/msm/mdss/mdss_mdp_pp.c +3 −2 Original line number Diff line number Diff line Loading @@ -6560,8 +6560,8 @@ exit_pp_info: void mdss_mdp_free_layer_pp_info(struct mdp_input_layer *layer) { struct mdp_overlay_pp_params *pp_info = (struct mdp_overlay_pp_params *) layer->pp_info; struct mdp_overlay_pp_params *pp_info = (layer) ? (struct mdp_overlay_pp_params *) layer->pp_info : NULL; if (!pp_info) return; Loading @@ -6571,6 +6571,7 @@ void mdss_mdp_free_layer_pp_info(struct mdp_input_layer *layer) kfree(pp_info->pa_v2_cfg_data.cfg_payload); kfree(pp_info->pcc_cfg_data.cfg_payload); kfree(pp_info); layer->pp_info = NULL; } int mdss_mdp_mfd_valid_dspp(struct msm_fb_data_type *mfd) Loading Loading
drivers/video/msm/mdss/mdss_fb.c +7 −2 Original line number Diff line number Diff line Loading @@ -4063,7 +4063,7 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, goto err; } else if (layer_count) { buffer_size = sizeof(struct mdp_input_layer) * layer_count; layer_list = kmalloc(buffer_size, GFP_KERNEL); layer_list = kzalloc(buffer_size, GFP_KERNEL); if (!layer_list) { pr_err("unable to allocate memory for layers\n"); ret = -ENOMEM; Loading @@ -4080,6 +4080,7 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, for (i = 0; i < layer_count; i++) { layer = &layer_list[i]; scale = NULL; if (!(layer->flags & MDP_LAYER_PP)) { layer->pp_info = NULL; Loading @@ -4097,10 +4098,11 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, continue; } scale = kmalloc(sizeof(struct mdp_scale_data), scale = kzalloc(sizeof(struct mdp_scale_data), GFP_KERNEL); if (!scale) { pr_err("unable to allocate memory for overlays\n"); mdss_mdp_free_layer_pp_info(layer); ret = -ENOMEM; goto err; } Loading @@ -4111,6 +4113,8 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, pr_err("layer list copy from user failed, scale = %p\n", layer->scale); kfree(scale); scale = NULL; mdss_mdp_free_layer_pp_info(layer); ret = -EFAULT; goto err; } Loading Loading @@ -4141,6 +4145,7 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, err: for (i--; i >= 0; i--) { kfree(layer_list[i].scale); layer_list[i].scale = NULL; mdss_mdp_free_layer_pp_info(&layer_list[i]); } kfree(layer_list); Loading
drivers/video/msm/mdss/mdss_mdp_pp.c +3 −2 Original line number Diff line number Diff line Loading @@ -6560,8 +6560,8 @@ exit_pp_info: void mdss_mdp_free_layer_pp_info(struct mdp_input_layer *layer) { struct mdp_overlay_pp_params *pp_info = (struct mdp_overlay_pp_params *) layer->pp_info; struct mdp_overlay_pp_params *pp_info = (layer) ? (struct mdp_overlay_pp_params *) layer->pp_info : NULL; if (!pp_info) return; Loading @@ -6571,6 +6571,7 @@ void mdss_mdp_free_layer_pp_info(struct mdp_input_layer *layer) kfree(pp_info->pa_v2_cfg_data.cfg_payload); kfree(pp_info->pcc_cfg_data.cfg_payload); kfree(pp_info); layer->pp_info = NULL; } int mdss_mdp_mfd_valid_dspp(struct msm_fb_data_type *mfd) Loading