[PATCH v3 1/3] drm/display: add transparent bridge helper
Dan Carpenter
dan.carpenter at linaro.org
Wed Aug 9 07:58:34 UTC 2023
Hi Dmitry,
kernel test robot noticed the following build warnings:
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Dmitry-Baryshkov/drm-display-add-transparent-bridge-helper/20230802-091932
base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link: https://lore.kernel.org/r/20230802011845.4176631-2-dmitry.baryshkov%40linaro.org
patch subject: [PATCH v3 1/3] drm/display: add transparent bridge helper
config: x86_64-randconfig-m001-20230808 (https://download.01.org/0day-ci/archive/20230809/202308090559.RMlH2Dl6-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230809/202308090559.RMlH2Dl6-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Reported-by: Dan Carpenter <dan.carpenter at linaro.org>
| Closes: https://lore.kernel.org/r/202308090559.RMlH2Dl6-lkp@intel.com/
smatch warnings:
drivers/gpu/drm/display/drm_simple_bridge.c:41 drm_simple_bridge_register() warn: possible memory leak of 'adev'
vim +/adev +41 drivers/gpu/drm/display/drm_simple_bridge.c
abf701043719cd Dmitry Baryshkov 2023-08-02 30 int drm_simple_bridge_register(struct device *parent)
abf701043719cd Dmitry Baryshkov 2023-08-02 31 {
abf701043719cd Dmitry Baryshkov 2023-08-02 32 struct auxiliary_device *adev;
abf701043719cd Dmitry Baryshkov 2023-08-02 33 int ret;
abf701043719cd Dmitry Baryshkov 2023-08-02 34
abf701043719cd Dmitry Baryshkov 2023-08-02 35 adev = kzalloc(sizeof(*adev), GFP_KERNEL);
abf701043719cd Dmitry Baryshkov 2023-08-02 36 if (!adev)
abf701043719cd Dmitry Baryshkov 2023-08-02 37 return -ENOMEM;
abf701043719cd Dmitry Baryshkov 2023-08-02 38
abf701043719cd Dmitry Baryshkov 2023-08-02 39 ret = ida_alloc(&simple_bridge_ida, GFP_KERNEL);
abf701043719cd Dmitry Baryshkov 2023-08-02 40 if (ret < 0)
abf701043719cd Dmitry Baryshkov 2023-08-02 @41 return ret;
kfree(adev);
abf701043719cd Dmitry Baryshkov 2023-08-02 42
abf701043719cd Dmitry Baryshkov 2023-08-02 43 adev->id = ret;
abf701043719cd Dmitry Baryshkov 2023-08-02 44 adev->name = "simple_bridge";
abf701043719cd Dmitry Baryshkov 2023-08-02 45 adev->dev.parent = parent;
abf701043719cd Dmitry Baryshkov 2023-08-02 46 adev->dev.of_node = parent->of_node;
abf701043719cd Dmitry Baryshkov 2023-08-02 47 adev->dev.release = drm_simple_bridge_release;
abf701043719cd Dmitry Baryshkov 2023-08-02 48
abf701043719cd Dmitry Baryshkov 2023-08-02 49 ret = auxiliary_device_init(adev);
abf701043719cd Dmitry Baryshkov 2023-08-02 50 if (ret) {
abf701043719cd Dmitry Baryshkov 2023-08-02 51 kfree(adev);
This needs to ida_free(&simple_bridge_ida, adev->id) as well. There is
a smatch check for this (check_unwind.c) but I guess I plan to re-write
it a bit before I turn that on.
abf701043719cd Dmitry Baryshkov 2023-08-02 52 return ret;
abf701043719cd Dmitry Baryshkov 2023-08-02 53 }
abf701043719cd Dmitry Baryshkov 2023-08-02 54
abf701043719cd Dmitry Baryshkov 2023-08-02 55 ret = auxiliary_device_add(adev);
abf701043719cd Dmitry Baryshkov 2023-08-02 56 if (ret) {
abf701043719cd Dmitry Baryshkov 2023-08-02 57 auxiliary_device_uninit(adev);
abf701043719cd Dmitry Baryshkov 2023-08-02 58 return ret;
abf701043719cd Dmitry Baryshkov 2023-08-02 59 }
abf701043719cd Dmitry Baryshkov 2023-08-02 60
abf701043719cd Dmitry Baryshkov 2023-08-02 61 return devm_add_action_or_reset(parent, drm_simple_bridge_unregister_adev, adev);
abf701043719cd Dmitry Baryshkov 2023-08-02 62 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the dri-devel
mailing list