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@xxxxxxxxx/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce: (https://download.01.org/0day-ci/archive/20230809/202308090559.RMlH2Dl6-lkp@xxxxxxxxx/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@xxxxxxxxx> | Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> | Closes: https://lore.kernel.org/r/202308090559.RMlH2Dl6-lkp@xxxxxxxxx/ 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