All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 3781/5053] drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'
@ 2021-03-17 14:31 ` Dan Carpenter
  0 siblings, 0 replies; 6+ messages in thread
From: Dan Carpenter @ 2021-03-17 14:31 UTC (permalink / raw)
  To: kbuild, Daniel Lezcano
  Cc: lkp, kbuild-all, Linux Memory Management List, Lukasz Luba

[-- Attachment #1: Type: text/plain, Size: 6884 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   fa903833ae344e4f4d798a8b85ba3ef0c5ce96c9
commit: f8d354e821b268c23a6cd548b7154e55c3954496 [3781/5053] thermal/drivers/devfreq_cooling: Use device name instead of auto-numbering
config: i386-randconfig-m021-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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'

vim +/ERR_PTR +433 drivers/thermal/devfreq_cooling.c

3c99c2cef75eb5 Javi Merino       2015-11-02  354  struct thermal_cooling_device *
a76caf55e5b356 Ørjan Eide        2015-09-10  355  of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
a76caf55e5b356 Ørjan Eide        2015-09-10  356  				  struct devfreq_cooling_power *dfc_power)
a76caf55e5b356 Ørjan Eide        2015-09-10  357  {
a76caf55e5b356 Ørjan Eide        2015-09-10  358  	struct thermal_cooling_device *cdev;
615510fe13bd24 Lukasz Luba       2020-12-10  359  	struct device *dev = df->dev.parent;
a76caf55e5b356 Ørjan Eide        2015-09-10  360  	struct devfreq_cooling_device *dfc;
f8d354e821b268 Daniel Lezcano    2021-03-14  361  	char *name;
615510fe13bd24 Lukasz Luba       2020-12-10  362  	int err, num_opps;
a76caf55e5b356 Ørjan Eide        2015-09-10  363  
a76caf55e5b356 Ørjan Eide        2015-09-10  364  	dfc = kzalloc(sizeof(*dfc), GFP_KERNEL);
a76caf55e5b356 Ørjan Eide        2015-09-10  365  	if (!dfc)
a76caf55e5b356 Ørjan Eide        2015-09-10  366  		return ERR_PTR(-ENOMEM);
a76caf55e5b356 Ørjan Eide        2015-09-10  367  
a76caf55e5b356 Ørjan Eide        2015-09-10  368  	dfc->devfreq = df;
a76caf55e5b356 Ørjan Eide        2015-09-10  369  
4401117bf7fc11 Lukasz Luba       2020-12-15  370  	dfc->em_pd = em_pd_get(dev);
4401117bf7fc11 Lukasz Luba       2020-12-15  371  	if (dfc->em_pd) {
a76caf55e5b356 Ørjan Eide        2015-09-10  372  		devfreq_cooling_ops.get_requested_power =
a76caf55e5b356 Ørjan Eide        2015-09-10  373  			devfreq_cooling_get_requested_power;
a76caf55e5b356 Ørjan Eide        2015-09-10  374  		devfreq_cooling_ops.state2power = devfreq_cooling_state2power;
a76caf55e5b356 Ørjan Eide        2015-09-10  375  		devfreq_cooling_ops.power2state = devfreq_cooling_power2state;
a76caf55e5b356 Ørjan Eide        2015-09-10  376  
615510fe13bd24 Lukasz Luba       2020-12-10  377  		dfc->power_ops = dfc_power;
615510fe13bd24 Lukasz Luba       2020-12-10  378  
4401117bf7fc11 Lukasz Luba       2020-12-15  379  		num_opps = em_pd_nr_perf_states(dfc->em_pd);
615510fe13bd24 Lukasz Luba       2020-12-10  380  	} else {
615510fe13bd24 Lukasz Luba       2020-12-10  381  		/* Backward compatibility for drivers which do not use IPA */
615510fe13bd24 Lukasz Luba       2020-12-10  382  		dev_dbg(dev, "missing EM for cooling device\n");
615510fe13bd24 Lukasz Luba       2020-12-10  383  
615510fe13bd24 Lukasz Luba       2020-12-10  384  		num_opps = dev_pm_opp_get_opp_count(dev);
615510fe13bd24 Lukasz Luba       2020-12-10  385  
615510fe13bd24 Lukasz Luba       2020-12-10  386  		err = devfreq_cooling_gen_tables(dfc, num_opps);
a76caf55e5b356 Ørjan Eide        2015-09-10  387  		if (err)
a76caf55e5b356 Ørjan Eide        2015-09-10  388  			goto free_dfc;
615510fe13bd24 Lukasz Luba       2020-12-10  389  	}
615510fe13bd24 Lukasz Luba       2020-12-10  390  
615510fe13bd24 Lukasz Luba       2020-12-10  391  	if (num_opps <= 0) {
615510fe13bd24 Lukasz Luba       2020-12-10  392  		err = -EINVAL;
615510fe13bd24 Lukasz Luba       2020-12-10  393  		goto free_dfc;
615510fe13bd24 Lukasz Luba       2020-12-10  394  	}
a76caf55e5b356 Ørjan Eide        2015-09-10  395  
615510fe13bd24 Lukasz Luba       2020-12-10  396  	/* max_state is an index, not a counter */
615510fe13bd24 Lukasz Luba       2020-12-10  397  	dfc->max_state = num_opps - 1;
615510fe13bd24 Lukasz Luba       2020-12-10  398  
615510fe13bd24 Lukasz Luba       2020-12-10  399  	err = dev_pm_qos_add_request(dev, &dfc->req_max_freq,
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  400  				     DEV_PM_QOS_MAX_FREQUENCY,
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  401  				     PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE);
2f96c035fbd143 Matthew Wilcox    2016-12-21  402  	if (err < 0)
615510fe13bd24 Lukasz Luba       2020-12-10  403  		goto free_table;
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  404  
f8d354e821b268 Daniel Lezcano    2021-03-14  405  	cdev = ERR_PTR(-ENOMEM);

This should be "err = -ENOMEM;"

f8d354e821b268 Daniel Lezcano    2021-03-14  406  	name = kasprintf(GFP_KERNEL, "devfreq-%s", dev_name(dev));
f8d354e821b268 Daniel Lezcano    2021-03-14  407  	if (!name)
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  408  		goto remove_qos_req;
615510fe13bd24 Lukasz Luba       2020-12-10  409  
f8d354e821b268 Daniel Lezcano    2021-03-14  410  	cdev = thermal_of_cooling_device_register(np, name, dfc,
a76caf55e5b356 Ørjan Eide        2015-09-10  411  						  &devfreq_cooling_ops);
f8d354e821b268 Daniel Lezcano    2021-03-14  412  	kfree(name);
f8d354e821b268 Daniel Lezcano    2021-03-14  413  
a76caf55e5b356 Ørjan Eide        2015-09-10  414  	if (IS_ERR(cdev)) {
a76caf55e5b356 Ørjan Eide        2015-09-10  415  		err = PTR_ERR(cdev);
615510fe13bd24 Lukasz Luba       2020-12-10  416  		dev_err(dev,
a76caf55e5b356 Ørjan Eide        2015-09-10  417  			"Failed to register devfreq cooling device (%d)\n",
a76caf55e5b356 Ørjan Eide        2015-09-10  418  			err);
f8d354e821b268 Daniel Lezcano    2021-03-14  419  		goto remove_qos_req;
a76caf55e5b356 Ørjan Eide        2015-09-10  420  	}
a76caf55e5b356 Ørjan Eide        2015-09-10  421  
a76caf55e5b356 Ørjan Eide        2015-09-10  422  	dfc->cdev = cdev;
a76caf55e5b356 Ørjan Eide        2015-09-10  423  
3c99c2cef75eb5 Javi Merino       2015-11-02  424  	return cdev;
a76caf55e5b356 Ørjan Eide        2015-09-10  425  
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  426  remove_qos_req:
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  427  	dev_pm_qos_remove_request(&dfc->req_max_freq);
615510fe13bd24 Lukasz Luba       2020-12-10  428  free_table:
a76caf55e5b356 Ørjan Eide        2015-09-10  429  	kfree(dfc->freq_table);
a76caf55e5b356 Ørjan Eide        2015-09-10  430  free_dfc:
a76caf55e5b356 Ørjan Eide        2015-09-10  431  	kfree(dfc);
a76caf55e5b356 Ørjan Eide        2015-09-10  432  
a76caf55e5b356 Ørjan Eide        2015-09-10 @433  	return ERR_PTR(err);
a76caf55e5b356 Ørjan Eide        2015-09-10  434  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 38842 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [linux-next:master 3781/5053] drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'
@ 2021-03-17 14:31 ` Dan Carpenter
  0 siblings, 0 replies; 6+ messages in thread
From: Dan Carpenter @ 2021-03-17 14:31 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6922 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   fa903833ae344e4f4d798a8b85ba3ef0c5ce96c9
commit: f8d354e821b268c23a6cd548b7154e55c3954496 [3781/5053] thermal/drivers/devfreq_cooling: Use device name instead of auto-numbering
config: i386-randconfig-m021-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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'

vim +/ERR_PTR +433 drivers/thermal/devfreq_cooling.c

3c99c2cef75eb5 Javi Merino       2015-11-02  354  struct thermal_cooling_device *
a76caf55e5b356 Ørjan Eide        2015-09-10  355  of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
a76caf55e5b356 Ørjan Eide        2015-09-10  356  				  struct devfreq_cooling_power *dfc_power)
a76caf55e5b356 Ørjan Eide        2015-09-10  357  {
a76caf55e5b356 Ørjan Eide        2015-09-10  358  	struct thermal_cooling_device *cdev;
615510fe13bd24 Lukasz Luba       2020-12-10  359  	struct device *dev = df->dev.parent;
a76caf55e5b356 Ørjan Eide        2015-09-10  360  	struct devfreq_cooling_device *dfc;
f8d354e821b268 Daniel Lezcano    2021-03-14  361  	char *name;
615510fe13bd24 Lukasz Luba       2020-12-10  362  	int err, num_opps;
a76caf55e5b356 Ørjan Eide        2015-09-10  363  
a76caf55e5b356 Ørjan Eide        2015-09-10  364  	dfc = kzalloc(sizeof(*dfc), GFP_KERNEL);
a76caf55e5b356 Ørjan Eide        2015-09-10  365  	if (!dfc)
a76caf55e5b356 Ørjan Eide        2015-09-10  366  		return ERR_PTR(-ENOMEM);
a76caf55e5b356 Ørjan Eide        2015-09-10  367  
a76caf55e5b356 Ørjan Eide        2015-09-10  368  	dfc->devfreq = df;
a76caf55e5b356 Ørjan Eide        2015-09-10  369  
4401117bf7fc11 Lukasz Luba       2020-12-15  370  	dfc->em_pd = em_pd_get(dev);
4401117bf7fc11 Lukasz Luba       2020-12-15  371  	if (dfc->em_pd) {
a76caf55e5b356 Ørjan Eide        2015-09-10  372  		devfreq_cooling_ops.get_requested_power =
a76caf55e5b356 Ørjan Eide        2015-09-10  373  			devfreq_cooling_get_requested_power;
a76caf55e5b356 Ørjan Eide        2015-09-10  374  		devfreq_cooling_ops.state2power = devfreq_cooling_state2power;
a76caf55e5b356 Ørjan Eide        2015-09-10  375  		devfreq_cooling_ops.power2state = devfreq_cooling_power2state;
a76caf55e5b356 Ørjan Eide        2015-09-10  376  
615510fe13bd24 Lukasz Luba       2020-12-10  377  		dfc->power_ops = dfc_power;
615510fe13bd24 Lukasz Luba       2020-12-10  378  
4401117bf7fc11 Lukasz Luba       2020-12-15  379  		num_opps = em_pd_nr_perf_states(dfc->em_pd);
615510fe13bd24 Lukasz Luba       2020-12-10  380  	} else {
615510fe13bd24 Lukasz Luba       2020-12-10  381  		/* Backward compatibility for drivers which do not use IPA */
615510fe13bd24 Lukasz Luba       2020-12-10  382  		dev_dbg(dev, "missing EM for cooling device\n");
615510fe13bd24 Lukasz Luba       2020-12-10  383  
615510fe13bd24 Lukasz Luba       2020-12-10  384  		num_opps = dev_pm_opp_get_opp_count(dev);
615510fe13bd24 Lukasz Luba       2020-12-10  385  
615510fe13bd24 Lukasz Luba       2020-12-10  386  		err = devfreq_cooling_gen_tables(dfc, num_opps);
a76caf55e5b356 Ørjan Eide        2015-09-10  387  		if (err)
a76caf55e5b356 Ørjan Eide        2015-09-10  388  			goto free_dfc;
615510fe13bd24 Lukasz Luba       2020-12-10  389  	}
615510fe13bd24 Lukasz Luba       2020-12-10  390  
615510fe13bd24 Lukasz Luba       2020-12-10  391  	if (num_opps <= 0) {
615510fe13bd24 Lukasz Luba       2020-12-10  392  		err = -EINVAL;
615510fe13bd24 Lukasz Luba       2020-12-10  393  		goto free_dfc;
615510fe13bd24 Lukasz Luba       2020-12-10  394  	}
a76caf55e5b356 Ørjan Eide        2015-09-10  395  
615510fe13bd24 Lukasz Luba       2020-12-10  396  	/* max_state is an index, not a counter */
615510fe13bd24 Lukasz Luba       2020-12-10  397  	dfc->max_state = num_opps - 1;
615510fe13bd24 Lukasz Luba       2020-12-10  398  
615510fe13bd24 Lukasz Luba       2020-12-10  399  	err = dev_pm_qos_add_request(dev, &dfc->req_max_freq,
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  400  				     DEV_PM_QOS_MAX_FREQUENCY,
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  401  				     PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE);
2f96c035fbd143 Matthew Wilcox    2016-12-21  402  	if (err < 0)
615510fe13bd24 Lukasz Luba       2020-12-10  403  		goto free_table;
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  404  
f8d354e821b268 Daniel Lezcano    2021-03-14  405  	cdev = ERR_PTR(-ENOMEM);

This should be "err = -ENOMEM;"

f8d354e821b268 Daniel Lezcano    2021-03-14  406  	name = kasprintf(GFP_KERNEL, "devfreq-%s", dev_name(dev));
f8d354e821b268 Daniel Lezcano    2021-03-14  407  	if (!name)
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  408  		goto remove_qos_req;
615510fe13bd24 Lukasz Luba       2020-12-10  409  
f8d354e821b268 Daniel Lezcano    2021-03-14  410  	cdev = thermal_of_cooling_device_register(np, name, dfc,
a76caf55e5b356 Ørjan Eide        2015-09-10  411  						  &devfreq_cooling_ops);
f8d354e821b268 Daniel Lezcano    2021-03-14  412  	kfree(name);
f8d354e821b268 Daniel Lezcano    2021-03-14  413  
a76caf55e5b356 Ørjan Eide        2015-09-10  414  	if (IS_ERR(cdev)) {
a76caf55e5b356 Ørjan Eide        2015-09-10  415  		err = PTR_ERR(cdev);
615510fe13bd24 Lukasz Luba       2020-12-10  416  		dev_err(dev,
a76caf55e5b356 Ørjan Eide        2015-09-10  417  			"Failed to register devfreq cooling device (%d)\n",
a76caf55e5b356 Ørjan Eide        2015-09-10  418  			err);
f8d354e821b268 Daniel Lezcano    2021-03-14  419  		goto remove_qos_req;
a76caf55e5b356 Ørjan Eide        2015-09-10  420  	}
a76caf55e5b356 Ørjan Eide        2015-09-10  421  
a76caf55e5b356 Ørjan Eide        2015-09-10  422  	dfc->cdev = cdev;
a76caf55e5b356 Ørjan Eide        2015-09-10  423  
3c99c2cef75eb5 Javi Merino       2015-11-02  424  	return cdev;
a76caf55e5b356 Ørjan Eide        2015-09-10  425  
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  426  remove_qos_req:
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  427  	dev_pm_qos_remove_request(&dfc->req_max_freq);
615510fe13bd24 Lukasz Luba       2020-12-10  428  free_table:
a76caf55e5b356 Ørjan Eide        2015-09-10  429  	kfree(dfc->freq_table);
a76caf55e5b356 Ørjan Eide        2015-09-10  430  free_dfc:
a76caf55e5b356 Ørjan Eide        2015-09-10  431  	kfree(dfc);
a76caf55e5b356 Ørjan Eide        2015-09-10  432  
a76caf55e5b356 Ørjan Eide        2015-09-10 @433  	return ERR_PTR(err);
a76caf55e5b356 Ørjan Eide        2015-09-10  434  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38842 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [linux-next:master 3781/5053] drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'
@ 2021-03-17 14:31 ` Dan Carpenter
  0 siblings, 0 replies; 6+ messages in thread
From: Dan Carpenter @ 2021-03-17 14:31 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 6922 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   fa903833ae344e4f4d798a8b85ba3ef0c5ce96c9
commit: f8d354e821b268c23a6cd548b7154e55c3954496 [3781/5053] thermal/drivers/devfreq_cooling: Use device name instead of auto-numbering
config: i386-randconfig-m021-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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'

vim +/ERR_PTR +433 drivers/thermal/devfreq_cooling.c

3c99c2cef75eb5 Javi Merino       2015-11-02  354  struct thermal_cooling_device *
a76caf55e5b356 Ørjan Eide        2015-09-10  355  of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
a76caf55e5b356 Ørjan Eide        2015-09-10  356  				  struct devfreq_cooling_power *dfc_power)
a76caf55e5b356 Ørjan Eide        2015-09-10  357  {
a76caf55e5b356 Ørjan Eide        2015-09-10  358  	struct thermal_cooling_device *cdev;
615510fe13bd24 Lukasz Luba       2020-12-10  359  	struct device *dev = df->dev.parent;
a76caf55e5b356 Ørjan Eide        2015-09-10  360  	struct devfreq_cooling_device *dfc;
f8d354e821b268 Daniel Lezcano    2021-03-14  361  	char *name;
615510fe13bd24 Lukasz Luba       2020-12-10  362  	int err, num_opps;
a76caf55e5b356 Ørjan Eide        2015-09-10  363  
a76caf55e5b356 Ørjan Eide        2015-09-10  364  	dfc = kzalloc(sizeof(*dfc), GFP_KERNEL);
a76caf55e5b356 Ørjan Eide        2015-09-10  365  	if (!dfc)
a76caf55e5b356 Ørjan Eide        2015-09-10  366  		return ERR_PTR(-ENOMEM);
a76caf55e5b356 Ørjan Eide        2015-09-10  367  
a76caf55e5b356 Ørjan Eide        2015-09-10  368  	dfc->devfreq = df;
a76caf55e5b356 Ørjan Eide        2015-09-10  369  
4401117bf7fc11 Lukasz Luba       2020-12-15  370  	dfc->em_pd = em_pd_get(dev);
4401117bf7fc11 Lukasz Luba       2020-12-15  371  	if (dfc->em_pd) {
a76caf55e5b356 Ørjan Eide        2015-09-10  372  		devfreq_cooling_ops.get_requested_power =
a76caf55e5b356 Ørjan Eide        2015-09-10  373  			devfreq_cooling_get_requested_power;
a76caf55e5b356 Ørjan Eide        2015-09-10  374  		devfreq_cooling_ops.state2power = devfreq_cooling_state2power;
a76caf55e5b356 Ørjan Eide        2015-09-10  375  		devfreq_cooling_ops.power2state = devfreq_cooling_power2state;
a76caf55e5b356 Ørjan Eide        2015-09-10  376  
615510fe13bd24 Lukasz Luba       2020-12-10  377  		dfc->power_ops = dfc_power;
615510fe13bd24 Lukasz Luba       2020-12-10  378  
4401117bf7fc11 Lukasz Luba       2020-12-15  379  		num_opps = em_pd_nr_perf_states(dfc->em_pd);
615510fe13bd24 Lukasz Luba       2020-12-10  380  	} else {
615510fe13bd24 Lukasz Luba       2020-12-10  381  		/* Backward compatibility for drivers which do not use IPA */
615510fe13bd24 Lukasz Luba       2020-12-10  382  		dev_dbg(dev, "missing EM for cooling device\n");
615510fe13bd24 Lukasz Luba       2020-12-10  383  
615510fe13bd24 Lukasz Luba       2020-12-10  384  		num_opps = dev_pm_opp_get_opp_count(dev);
615510fe13bd24 Lukasz Luba       2020-12-10  385  
615510fe13bd24 Lukasz Luba       2020-12-10  386  		err = devfreq_cooling_gen_tables(dfc, num_opps);
a76caf55e5b356 Ørjan Eide        2015-09-10  387  		if (err)
a76caf55e5b356 Ørjan Eide        2015-09-10  388  			goto free_dfc;
615510fe13bd24 Lukasz Luba       2020-12-10  389  	}
615510fe13bd24 Lukasz Luba       2020-12-10  390  
615510fe13bd24 Lukasz Luba       2020-12-10  391  	if (num_opps <= 0) {
615510fe13bd24 Lukasz Luba       2020-12-10  392  		err = -EINVAL;
615510fe13bd24 Lukasz Luba       2020-12-10  393  		goto free_dfc;
615510fe13bd24 Lukasz Luba       2020-12-10  394  	}
a76caf55e5b356 Ørjan Eide        2015-09-10  395  
615510fe13bd24 Lukasz Luba       2020-12-10  396  	/* max_state is an index, not a counter */
615510fe13bd24 Lukasz Luba       2020-12-10  397  	dfc->max_state = num_opps - 1;
615510fe13bd24 Lukasz Luba       2020-12-10  398  
615510fe13bd24 Lukasz Luba       2020-12-10  399  	err = dev_pm_qos_add_request(dev, &dfc->req_max_freq,
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  400  				     DEV_PM_QOS_MAX_FREQUENCY,
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  401  				     PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE);
2f96c035fbd143 Matthew Wilcox    2016-12-21  402  	if (err < 0)
615510fe13bd24 Lukasz Luba       2020-12-10  403  		goto free_table;
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  404  
f8d354e821b268 Daniel Lezcano    2021-03-14  405  	cdev = ERR_PTR(-ENOMEM);

This should be "err = -ENOMEM;"

f8d354e821b268 Daniel Lezcano    2021-03-14  406  	name = kasprintf(GFP_KERNEL, "devfreq-%s", dev_name(dev));
f8d354e821b268 Daniel Lezcano    2021-03-14  407  	if (!name)
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  408  		goto remove_qos_req;
615510fe13bd24 Lukasz Luba       2020-12-10  409  
f8d354e821b268 Daniel Lezcano    2021-03-14  410  	cdev = thermal_of_cooling_device_register(np, name, dfc,
a76caf55e5b356 Ørjan Eide        2015-09-10  411  						  &devfreq_cooling_ops);
f8d354e821b268 Daniel Lezcano    2021-03-14  412  	kfree(name);
f8d354e821b268 Daniel Lezcano    2021-03-14  413  
a76caf55e5b356 Ørjan Eide        2015-09-10  414  	if (IS_ERR(cdev)) {
a76caf55e5b356 Ørjan Eide        2015-09-10  415  		err = PTR_ERR(cdev);
615510fe13bd24 Lukasz Luba       2020-12-10  416  		dev_err(dev,
a76caf55e5b356 Ørjan Eide        2015-09-10  417  			"Failed to register devfreq cooling device (%d)\n",
a76caf55e5b356 Ørjan Eide        2015-09-10  418  			err);
f8d354e821b268 Daniel Lezcano    2021-03-14  419  		goto remove_qos_req;
a76caf55e5b356 Ørjan Eide        2015-09-10  420  	}
a76caf55e5b356 Ørjan Eide        2015-09-10  421  
a76caf55e5b356 Ørjan Eide        2015-09-10  422  	dfc->cdev = cdev;
a76caf55e5b356 Ørjan Eide        2015-09-10  423  
3c99c2cef75eb5 Javi Merino       2015-11-02  424  	return cdev;
a76caf55e5b356 Ørjan Eide        2015-09-10  425  
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  426  remove_qos_req:
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  427  	dev_pm_qos_remove_request(&dfc->req_max_freq);
615510fe13bd24 Lukasz Luba       2020-12-10  428  free_table:
a76caf55e5b356 Ørjan Eide        2015-09-10  429  	kfree(dfc->freq_table);
a76caf55e5b356 Ørjan Eide        2015-09-10  430  free_dfc:
a76caf55e5b356 Ørjan Eide        2015-09-10  431  	kfree(dfc);
a76caf55e5b356 Ørjan Eide        2015-09-10  432  
a76caf55e5b356 Ørjan Eide        2015-09-10 @433  	return ERR_PTR(err);
a76caf55e5b356 Ørjan Eide        2015-09-10  434  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38842 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] thermal/drivers/devfreq_cooling: Fix wrong return on error path
  2021-03-17 14:31 ` Dan Carpenter
  (?)
  (?)
@ 2021-03-19 20:24 ` Daniel Lezcano
  2021-04-15 12:04   ` [thermal: thermal/next] " thermal-bot for Daniel Lezcano
  -1 siblings, 1 reply; 6+ messages in thread
From: Daniel Lezcano @ 2021-03-19 20:24 UTC (permalink / raw)
  To: daniel.lezcano
  Cc: kernel test robot, Dan Carpenter, Zhang Rui, Amit Kucheria,
	open list:THERMAL, open list

The following error is reported by kbuild:

 smatch warnings:
 drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'

Fix the error code by the setting the 'err' variable instead of 'cdev'.

Fixes: f8d354e821b2 ("thermal/drivers/devfreq_cooling: Use device name instead of auto-numbering")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 drivers/thermal/devfreq_cooling.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/thermal/devfreq_cooling.c b/drivers/thermal/devfreq_cooling.c
index fb250ac16f50..3a788ac4f525 100644
--- a/drivers/thermal/devfreq_cooling.c
+++ b/drivers/thermal/devfreq_cooling.c
@@ -402,7 +402,7 @@ of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
 	if (err < 0)
 		goto free_table;
 
-	cdev = ERR_PTR(-ENOMEM);
+	err = -ENOMEM;
 	name = kasprintf(GFP_KERNEL, "devfreq-%s", dev_name(dev));
 	if (!name)
 		goto remove_qos_req;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [thermal: thermal/next] thermal/drivers/devfreq_cooling: Fix wrong return on error path
  2021-03-19 20:24 ` [PATCH] thermal/drivers/devfreq_cooling: Fix wrong return on error path Daniel Lezcano
@ 2021-04-15 12:04   ` thermal-bot for Daniel Lezcano
  0 siblings, 0 replies; 6+ messages in thread
From: thermal-bot for Daniel Lezcano @ 2021-04-15 12:04 UTC (permalink / raw)
  To: linux-pm
  Cc: kernel test robot, Dan Carpenter, Daniel Lezcano, rui.zhang, amitk

The following commit has been merged into the thermal/next branch of thermal:

Commit-ID:     9aa80ab2c0ba67ce3281aee604b543293f71390d
Gitweb:        https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git//9aa80ab2c0ba67ce3281aee604b543293f71390d
Author:        Daniel Lezcano <daniel.lezcano@linaro.org>
AuthorDate:    Fri, 19 Mar 2021 21:24:23 +01:00
Committer:     Daniel Lezcano <daniel.lezcano@linaro.org>
CommitterDate: Thu, 15 Apr 2021 13:21:16 +02:00

thermal/drivers/devfreq_cooling: Fix wrong return on error path

The following error is reported by kbuild:

 smatch warnings:
 drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'

Fix the error code by the setting the 'err' variable instead of 'cdev'.

Fixes: f8d354e821b2 ("thermal/drivers/devfreq_cooling: Use device name instead of auto-numbering")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20210319202424.890968-1-daniel.lezcano@linaro.org
---
 drivers/thermal/devfreq_cooling.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/thermal/devfreq_cooling.c b/drivers/thermal/devfreq_cooling.c
index fb250ac..3a788ac 100644
--- a/drivers/thermal/devfreq_cooling.c
+++ b/drivers/thermal/devfreq_cooling.c
@@ -402,7 +402,7 @@ of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
 	if (err < 0)
 		goto free_table;
 
-	cdev = ERR_PTR(-ENOMEM);
+	err = -ENOMEM;
 	name = kasprintf(GFP_KERNEL, "devfreq-%s", dev_name(dev));
 	if (!name)
 		goto remove_qos_req;

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [linux-next:master 3781/5053] drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'
@ 2021-03-17 13:33 kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2021-03-17 13:33 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 8966 bytes --]

CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Daniel Lezcano <daniel.lezcano@linaro.org>
CC: Lukasz Luba <lukasz.luba@arm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   fa903833ae344e4f4d798a8b85ba3ef0c5ce96c9
commit: f8d354e821b268c23a6cd548b7154e55c3954496 [3781/5053] thermal/drivers/devfreq_cooling: Use device name instead of auto-numbering
:::::: branch date: 5 hours ago
:::::: commit date: 2 days ago
config: i386-randconfig-m021-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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'

vim +/ERR_PTR +433 drivers/thermal/devfreq_cooling.c

a76caf55e5b356 Ørjan Eide        2015-09-10  338  
a76caf55e5b356 Ørjan Eide        2015-09-10  339  /**
a76caf55e5b356 Ørjan Eide        2015-09-10  340   * of_devfreq_cooling_register_power() - Register devfreq cooling device,
a76caf55e5b356 Ørjan Eide        2015-09-10  341   *                                      with OF and power information.
a76caf55e5b356 Ørjan Eide        2015-09-10  342   * @np:	Pointer to OF device_node.
a76caf55e5b356 Ørjan Eide        2015-09-10  343   * @df:	Pointer to devfreq device.
a76caf55e5b356 Ørjan Eide        2015-09-10  344   * @dfc_power:	Pointer to devfreq_cooling_power.
a76caf55e5b356 Ørjan Eide        2015-09-10  345   *
a76caf55e5b356 Ørjan Eide        2015-09-10  346   * Register a devfreq cooling device.  The available OPPs must be
a76caf55e5b356 Ørjan Eide        2015-09-10  347   * registered on the device.
a76caf55e5b356 Ørjan Eide        2015-09-10  348   *
a76caf55e5b356 Ørjan Eide        2015-09-10  349   * If @dfc_power is provided, the cooling device is registered with the
a76caf55e5b356 Ørjan Eide        2015-09-10  350   * power extensions.  For the power extensions to work correctly,
a76caf55e5b356 Ørjan Eide        2015-09-10  351   * devfreq should use the simple_ondemand governor, other governors
a76caf55e5b356 Ørjan Eide        2015-09-10  352   * are not currently supported.
a76caf55e5b356 Ørjan Eide        2015-09-10  353   */
3c99c2cef75eb5 Javi Merino       2015-11-02  354  struct thermal_cooling_device *
a76caf55e5b356 Ørjan Eide        2015-09-10  355  of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
a76caf55e5b356 Ørjan Eide        2015-09-10  356  				  struct devfreq_cooling_power *dfc_power)
a76caf55e5b356 Ørjan Eide        2015-09-10  357  {
a76caf55e5b356 Ørjan Eide        2015-09-10  358  	struct thermal_cooling_device *cdev;
615510fe13bd24 Lukasz Luba       2020-12-10  359  	struct device *dev = df->dev.parent;
a76caf55e5b356 Ørjan Eide        2015-09-10  360  	struct devfreq_cooling_device *dfc;
f8d354e821b268 Daniel Lezcano    2021-03-14  361  	char *name;
615510fe13bd24 Lukasz Luba       2020-12-10  362  	int err, num_opps;
a76caf55e5b356 Ørjan Eide        2015-09-10  363  
a76caf55e5b356 Ørjan Eide        2015-09-10  364  	dfc = kzalloc(sizeof(*dfc), GFP_KERNEL);
a76caf55e5b356 Ørjan Eide        2015-09-10  365  	if (!dfc)
a76caf55e5b356 Ørjan Eide        2015-09-10  366  		return ERR_PTR(-ENOMEM);
a76caf55e5b356 Ørjan Eide        2015-09-10  367  
a76caf55e5b356 Ørjan Eide        2015-09-10  368  	dfc->devfreq = df;
a76caf55e5b356 Ørjan Eide        2015-09-10  369  
4401117bf7fc11 Lukasz Luba       2020-12-15  370  	dfc->em_pd = em_pd_get(dev);
4401117bf7fc11 Lukasz Luba       2020-12-15  371  	if (dfc->em_pd) {
a76caf55e5b356 Ørjan Eide        2015-09-10  372  		devfreq_cooling_ops.get_requested_power =
a76caf55e5b356 Ørjan Eide        2015-09-10  373  			devfreq_cooling_get_requested_power;
a76caf55e5b356 Ørjan Eide        2015-09-10  374  		devfreq_cooling_ops.state2power = devfreq_cooling_state2power;
a76caf55e5b356 Ørjan Eide        2015-09-10  375  		devfreq_cooling_ops.power2state = devfreq_cooling_power2state;
a76caf55e5b356 Ørjan Eide        2015-09-10  376  
615510fe13bd24 Lukasz Luba       2020-12-10  377  		dfc->power_ops = dfc_power;
615510fe13bd24 Lukasz Luba       2020-12-10  378  
4401117bf7fc11 Lukasz Luba       2020-12-15  379  		num_opps = em_pd_nr_perf_states(dfc->em_pd);
615510fe13bd24 Lukasz Luba       2020-12-10  380  	} else {
615510fe13bd24 Lukasz Luba       2020-12-10  381  		/* Backward compatibility for drivers which do not use IPA */
615510fe13bd24 Lukasz Luba       2020-12-10  382  		dev_dbg(dev, "missing EM for cooling device\n");
615510fe13bd24 Lukasz Luba       2020-12-10  383  
615510fe13bd24 Lukasz Luba       2020-12-10  384  		num_opps = dev_pm_opp_get_opp_count(dev);
615510fe13bd24 Lukasz Luba       2020-12-10  385  
615510fe13bd24 Lukasz Luba       2020-12-10  386  		err = devfreq_cooling_gen_tables(dfc, num_opps);
a76caf55e5b356 Ørjan Eide        2015-09-10  387  		if (err)
a76caf55e5b356 Ørjan Eide        2015-09-10  388  			goto free_dfc;
615510fe13bd24 Lukasz Luba       2020-12-10  389  	}
615510fe13bd24 Lukasz Luba       2020-12-10  390  
615510fe13bd24 Lukasz Luba       2020-12-10  391  	if (num_opps <= 0) {
615510fe13bd24 Lukasz Luba       2020-12-10  392  		err = -EINVAL;
615510fe13bd24 Lukasz Luba       2020-12-10  393  		goto free_dfc;
615510fe13bd24 Lukasz Luba       2020-12-10  394  	}
a76caf55e5b356 Ørjan Eide        2015-09-10  395  
615510fe13bd24 Lukasz Luba       2020-12-10  396  	/* max_state is an index, not a counter */
615510fe13bd24 Lukasz Luba       2020-12-10  397  	dfc->max_state = num_opps - 1;
615510fe13bd24 Lukasz Luba       2020-12-10  398  
615510fe13bd24 Lukasz Luba       2020-12-10  399  	err = dev_pm_qos_add_request(dev, &dfc->req_max_freq,
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  400  				     DEV_PM_QOS_MAX_FREQUENCY,
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  401  				     PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE);
2f96c035fbd143 Matthew Wilcox    2016-12-21  402  	if (err < 0)
615510fe13bd24 Lukasz Luba       2020-12-10  403  		goto free_table;
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  404  
f8d354e821b268 Daniel Lezcano    2021-03-14  405  	cdev = ERR_PTR(-ENOMEM);
f8d354e821b268 Daniel Lezcano    2021-03-14  406  	name = kasprintf(GFP_KERNEL, "devfreq-%s", dev_name(dev));
f8d354e821b268 Daniel Lezcano    2021-03-14  407  	if (!name)
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  408  		goto remove_qos_req;
615510fe13bd24 Lukasz Luba       2020-12-10  409  
f8d354e821b268 Daniel Lezcano    2021-03-14  410  	cdev = thermal_of_cooling_device_register(np, name, dfc,
a76caf55e5b356 Ørjan Eide        2015-09-10  411  						  &devfreq_cooling_ops);
f8d354e821b268 Daniel Lezcano    2021-03-14  412  	kfree(name);
f8d354e821b268 Daniel Lezcano    2021-03-14  413  
a76caf55e5b356 Ørjan Eide        2015-09-10  414  	if (IS_ERR(cdev)) {
a76caf55e5b356 Ørjan Eide        2015-09-10  415  		err = PTR_ERR(cdev);
615510fe13bd24 Lukasz Luba       2020-12-10  416  		dev_err(dev,
a76caf55e5b356 Ørjan Eide        2015-09-10  417  			"Failed to register devfreq cooling device (%d)\n",
a76caf55e5b356 Ørjan Eide        2015-09-10  418  			err);
f8d354e821b268 Daniel Lezcano    2021-03-14  419  		goto remove_qos_req;
a76caf55e5b356 Ørjan Eide        2015-09-10  420  	}
a76caf55e5b356 Ørjan Eide        2015-09-10  421  
a76caf55e5b356 Ørjan Eide        2015-09-10  422  	dfc->cdev = cdev;
a76caf55e5b356 Ørjan Eide        2015-09-10  423  
3c99c2cef75eb5 Javi Merino       2015-11-02  424  	return cdev;
a76caf55e5b356 Ørjan Eide        2015-09-10  425  
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  426  remove_qos_req:
04fa9c804b0ed5 Matthias Kaehlcke 2020-03-18  427  	dev_pm_qos_remove_request(&dfc->req_max_freq);
615510fe13bd24 Lukasz Luba       2020-12-10  428  free_table:
a76caf55e5b356 Ørjan Eide        2015-09-10  429  	kfree(dfc->freq_table);
a76caf55e5b356 Ørjan Eide        2015-09-10  430  free_dfc:
a76caf55e5b356 Ørjan Eide        2015-09-10  431  	kfree(dfc);
a76caf55e5b356 Ørjan Eide        2015-09-10  432  
a76caf55e5b356 Ørjan Eide        2015-09-10 @433  	return ERR_PTR(err);
a76caf55e5b356 Ørjan Eide        2015-09-10  434  }
a76caf55e5b356 Ørjan Eide        2015-09-10  435  EXPORT_SYMBOL_GPL(of_devfreq_cooling_register_power);
a76caf55e5b356 Ørjan Eide        2015-09-10  436  

:::::: The code at line 433 was first introduced by commit
:::::: a76caf55e5b356ba20a5a43ac4d9f7a04b20941d thermal: Add devfreq cooling

:::::: TO: Ørjan Eide <orjan.eide@arm.com>
:::::: CC: Eduardo Valentin <edubezval@gmail.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38842 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-04-15 12:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-17 14:31 [linux-next:master 3781/5053] drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR' Dan Carpenter
2021-03-17 14:31 ` Dan Carpenter
2021-03-17 14:31 ` Dan Carpenter
2021-03-19 20:24 ` [PATCH] thermal/drivers/devfreq_cooling: Fix wrong return on error path Daniel Lezcano
2021-04-15 12:04   ` [thermal: thermal/next] " thermal-bot for Daniel Lezcano
  -- strict thread matches above, loose matches on Subject: below --
2021-03-17 13:33 [linux-next:master 3781/5053] drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.