tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: fa903833ae344e4f4d798a8b85ba3ef0c5ce96c9 commit: 58483761810087e5ffdf36e84ac1bf26df909097 [3779/5053] thermal/drivers/core: Use a char pointer for the cooling device name config: x86_64-randconfig-m001-20210317 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/thermal/thermal_core.c:1020 __thermal_cooling_device_register() warn: possible memory leak of 'cdev' vim +/cdev +1020 drivers/thermal/thermal_core.c a116b5d44f1445 drivers/thermal/thermal_core.c Eduardo Valentin 2013-09-26 956 static struct thermal_cooling_device * a116b5d44f1445 drivers/thermal/thermal_core.c Eduardo Valentin 2013-09-26 957 __thermal_cooling_device_register(struct device_node *np, f991de53a8abef drivers/thermal/thermal_core.c Jean-Francois Dagenais 2019-04-18 958 const char *type, void *devdata, caca8b803520b0 drivers/thermal/thermal_sys.c Joe Perches 2012-03-21 959 const struct thermal_cooling_device_ops *ops) 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 960 { 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 961 struct thermal_cooling_device *cdev; 4511f7166a2deb drivers/thermal/thermal_core.c Chen Yu 2015-10-30 962 struct thermal_zone_device *pos = NULL; 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 963 int ret; 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 964 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 965 if (!ops || !ops->get_max_state || !ops->get_cur_state || 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 966 !ops->set_cur_state) 3e6fda5c115982 drivers/thermal/thermal.c Thomas Sujith 2008-02-15 967 return ERR_PTR(-EINVAL); 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 968 95e3ed1513494a drivers/thermal/thermal_core.c Eduardo Valentin 2016-11-07 969 cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 970 if (!cdev) 3e6fda5c115982 drivers/thermal/thermal.c Thomas Sujith 2008-02-15 971 return ERR_PTR(-ENOMEM); 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 972 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 973 ret = ida_simple_get(&thermal_cdev_ida, 0, 0, GFP_KERNEL); 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 974 if (ret < 0) 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 975 goto out_kfree_cdev; ^^^^^^^^^^^^^^^^^^^^ 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 976 cdev->id = ret; 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 977 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 978 cdev->type = kstrdup(type ? type : "", GFP_KERNEL); 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 979 if (!cdev->type) { 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 980 ret = -ENOMEM; 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 981 goto out_ida_remove; 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 982 } 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 983 f4a821ce6ed419 drivers/thermal/thermal_sys.c Zhang Rui 2012-07-24 984 mutex_init(&cdev->lock); b5e4ae620b0627 drivers/thermal/thermal_sys.c Zhang Rui 2012-06-27 985 INIT_LIST_HEAD(&cdev->thermal_instances); a116b5d44f1445 drivers/thermal/thermal_core.c Eduardo Valentin 2013-09-26 986 cdev->np = np; 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 987 cdev->ops = ops; 5ca0cce5622bf4 drivers/thermal/thermal_core.c Ni Wade 2014-02-17 988 cdev->updated = false; 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 989 cdev->device.class = &thermal_class; 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 990 cdev->devdata = devdata; 8ea229511e06f9 drivers/thermal/thermal_core.c Viresh Kumar 2018-04-02 991 thermal_cooling_device_setup_sysfs(cdev); 354655ea9714e5 drivers/thermal/thermal_sys.c Kay Sievers 2009-01-06 992 dev_set_name(&cdev->device, "cooling_device%d", cdev->id); 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 993 ret = device_register(&cdev->device); 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 994 if (ret) 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 995 goto out_kfree_type; 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 996 7e8ee1e9d7561f drivers/thermal/thermal_sys.c Durgadoss R 2012-09-18 997 /* Add 'this' new cdev to the global cdev list */ 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 998 mutex_lock(&thermal_list_lock); 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 999 list_add(&cdev->node, &thermal_cdev_list); 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 1000 mutex_unlock(&thermal_list_lock); 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 1001 7e8ee1e9d7561f drivers/thermal/thermal_sys.c Durgadoss R 2012-09-18 1002 /* Update binding information for 'this' new cdev */ 7e8ee1e9d7561f drivers/thermal/thermal_sys.c Durgadoss R 2012-09-18 1003 bind_cdev(cdev); 7e8ee1e9d7561f drivers/thermal/thermal_sys.c Durgadoss R 2012-09-18 1004 4511f7166a2deb drivers/thermal/thermal_core.c Chen Yu 2015-10-30 1005 mutex_lock(&thermal_list_lock); 4511f7166a2deb drivers/thermal/thermal_core.c Chen Yu 2015-10-30 1006 list_for_each_entry(pos, &thermal_tz_list, node) 4511f7166a2deb drivers/thermal/thermal_core.c Chen Yu 2015-10-30 1007 if (atomic_cmpxchg(&pos->need_update, 1, 0)) 0e70f466fb910a drivers/thermal/thermal_core.c Srinivas Pandruvada 2016-08-26 1008 thermal_zone_device_update(pos, 0e70f466fb910a drivers/thermal/thermal_core.c Srinivas Pandruvada 2016-08-26 1009 THERMAL_EVENT_UNSPECIFIED); 4511f7166a2deb drivers/thermal/thermal_core.c Chen Yu 2015-10-30 1010 mutex_unlock(&thermal_list_lock); 4511f7166a2deb drivers/thermal/thermal_core.c Chen Yu 2015-10-30 1011 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 1012 return cdev; 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 1013 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 1014 out_kfree_type: 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 1015 kfree(cdev->type); 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 1016 put_device(&cdev->device); 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 1017 out_ida_remove: 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 1018 ida_simple_remove(&thermal_cdev_ida, cdev->id); 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 1019 out_kfree_cdev: Presumably there was supposed to be a kfree(cdev) here. ;) 58483761810087 drivers/thermal/thermal_core.c Daniel Lezcano 2021-03-14 @1020 return ERR_PTR(ret); 203d3d4aa48233 drivers/thermal/thermal.c Zhang Rui 2008-01-17 1021 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org