Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/msm/mdp5: use devres-managed allocation for CTL manager data

Use devm_kzalloc to create CTL manager data structure. This allows us
to remove corresponding kfree and drop mdp5_ctlm_destroy() function.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/546159/
Link: https://lore.kernel.org/r/20230708010407.3871346-4-dmitry.baryshkov@linaro.org

+4 -20
+4 -17
drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c
··· 681 681 } 682 682 } 683 683 684 - void mdp5_ctlm_destroy(struct mdp5_ctl_manager *ctl_mgr) 685 - { 686 - kfree(ctl_mgr); 687 - } 688 - 689 684 struct mdp5_ctl_manager *mdp5_ctlm_init(struct drm_device *dev, 690 685 void __iomem *mmio_base, struct mdp5_cfg_handler *cfg_hnd) 691 686 { ··· 692 697 unsigned long flags; 693 698 int c, ret; 694 699 695 - ctl_mgr = kzalloc(sizeof(*ctl_mgr), GFP_KERNEL); 700 + ctl_mgr = devm_kzalloc(dev->dev, sizeof(*ctl_mgr), GFP_KERNEL); 696 701 if (!ctl_mgr) { 697 702 DRM_DEV_ERROR(dev->dev, "failed to allocate CTL manager\n"); 698 - ret = -ENOMEM; 699 - goto fail; 703 + return ERR_PTR(-ENOMEM); 700 704 } 701 705 702 706 if (WARN_ON(ctl_cfg->count > MAX_CTL)) { 703 707 DRM_DEV_ERROR(dev->dev, "Increase static pool size to at least %d\n", 704 708 ctl_cfg->count); 705 - ret = -ENOSPC; 706 - goto fail; 709 + return ERR_PTR(-ENOSPC); 707 710 } 708 711 709 712 /* initialize the CTL manager: */ ··· 720 727 DRM_DEV_ERROR(dev->dev, "CTL_%d: base is null!\n", c); 721 728 ret = -EINVAL; 722 729 spin_unlock_irqrestore(&ctl_mgr->pool_lock, flags); 723 - goto fail; 730 + return ERR_PTR(ret); 724 731 } 725 732 ctl->ctlm = ctl_mgr; 726 733 ctl->id = c; ··· 748 755 DBG("Pool of %d CTLs created.", ctl_mgr->nctl); 749 756 750 757 return ctl_mgr; 751 - 752 - fail: 753 - if (ctl_mgr) 754 - mdp5_ctlm_destroy(ctl_mgr); 755 - 756 - return ERR_PTR(ret); 757 758 }
-1
drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.h
··· 17 17 struct mdp5_ctl_manager *mdp5_ctlm_init(struct drm_device *dev, 18 18 void __iomem *mmio_base, struct mdp5_cfg_handler *cfg_hnd); 19 19 void mdp5_ctlm_hw_reset(struct mdp5_ctl_manager *ctlm); 20 - void mdp5_ctlm_destroy(struct mdp5_ctl_manager *ctlm); 21 20 22 21 /* 23 22 * CTL prototypes:
-2
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
··· 625 625 { 626 626 int i; 627 627 628 - if (mdp5_kms->ctlm) 629 - mdp5_ctlm_destroy(mdp5_kms->ctlm); 630 628 if (mdp5_kms->smp) 631 629 mdp5_smp_destroy(mdp5_kms->smp); 632 630