* [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.