From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [linux-next:master 3781/5053] drivers/thermal/devfreq_cooling.c:433 of_devfreq_cooling_register_power() warn: passing zero to 'ERR_PTR'
Date: Wed, 17 Mar 2021 21:33:16 +0800 [thread overview]
Message-ID: <202103172106.nc4lkDHb-lkp@intel.com> (raw)
[-- 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 --]
next reply other threads:[~2021-03-17 13:33 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-17 13:33 kernel test robot [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202103172106.nc4lkDHb-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.