::::::
:::::: Manual check reason: "low confidence bisect report"
:::::: Manual check reason: "low confidence static check warning:
drivers/hwmon/pmbus/lm25066.c:461:13: warning: use of uninitialized value
'<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]"
::::::
BCC: lkp(a)intel.com
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Zev Weiss <zev(a)bewilderbeest.net>
CC: Guenter Roeck <linux(a)roeck-us.net>
tree:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: a335366bad1364a07f49df9da1fdfa6d411a5f39
commit: 94ee5fcc240fe9ffdd1c3206a48d5bdf425ea478 hwmon: (pmbus/lm25066) Support
configurable sense resistor values
date: 11 months ago
:::::: branch date: 2 days ago
:::::: commit date: 11 months ago
config: arm-randconfig-c002-20220915
compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 94ee5fcc240fe9ffdd1c3206a48d5bdf425ea478
# save the config file
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross ARCH=arm
KBUILD_USERCFLAGS='-fanalyzer -Wno-error'
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp(a)intel.com>
gcc_analyzer warnings: (new ones prefixed by >>)
drivers/hwmon/pmbus/lm25066.c: In function 'lm25066_probe':
> drivers/hwmon/pmbus/lm25066.c:461:13: warning: use of
uninitialized value '<unknown>' [CWE-457]
[-Wanalyzer-use-of-uninitialized-value]
461 | u32 shunt;
| ^~~~~
'lm25066_probe': event 1
|
| 461 | u32 shunt;
| | ^~~~~
| | |
| | (1) use of uninitialized value '<unknown>' here
|
vim +461 drivers/hwmon/pmbus/lm25066.c
b7792f3ea3924a Zev Weiss 2021-09-28 457
dd43193976b9a7 Stephen Kitt 2020-08-08 458 static int
lm25066_probe(struct i2c_client *client)
03e9bd8dbcee60 Guenter Roeck 2011-07-08 459 {
03e9bd8dbcee60 Guenter Roeck 2011-07-08 460 int config;
94ee5fcc240fe9 Zev Weiss 2021-09-28 @461 u32 shunt;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 462 struct
lm25066_data *data;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 463 struct
pmbus_driver_info *info;
df60a5daa7fb15 Zev Weiss 2021-09-28 464 const struct
__coeff *coeff;
b7792f3ea3924a Zev Weiss 2021-09-28 465 const struct
of_device_id *of_id;
b7792f3ea3924a Zev Weiss 2021-09-28 466 const struct
i2c_device_id *i2c_id;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 467
03e9bd8dbcee60 Guenter Roeck 2011-07-08 468 if
(!i2c_check_functionality(client->adapter,
03e9bd8dbcee60 Guenter Roeck 2011-07-08 469
I2C_FUNC_SMBUS_READ_BYTE_DATA))
03e9bd8dbcee60 Guenter Roeck 2011-07-08 470 return -ENODEV;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 471
8b313ca7f1b982 Guenter Roeck 2012-02-22 472 data =
devm_kzalloc(&client->dev, sizeof(struct lm25066_data),
8b313ca7f1b982 Guenter Roeck 2012-02-22 473
GFP_KERNEL);
03e9bd8dbcee60 Guenter Roeck 2011-07-08 474 if (!data)
03e9bd8dbcee60 Guenter Roeck 2011-07-08 475 return -ENOMEM;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 476
03e9bd8dbcee60 Guenter Roeck 2011-07-08 477 config =
i2c_smbus_read_byte_data(client, LM25066_DEVICE_SETUP);
8b313ca7f1b982 Guenter Roeck 2012-02-22 478 if (config <
0)
8b313ca7f1b982 Guenter Roeck 2012-02-22 479 return config;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 480
b7792f3ea3924a Zev Weiss 2021-09-28 481 i2c_id =
i2c_match_id(lm25066_id, client);
b7792f3ea3924a Zev Weiss 2021-09-28 482
b7792f3ea3924a Zev Weiss 2021-09-28 483 of_id =
of_match_device(lm25066_of_match, &client->dev);
b7792f3ea3924a Zev Weiss 2021-09-28 484 if (of_id
&& (unsigned long)of_id->data != i2c_id->driver_data)
b7792f3ea3924a Zev Weiss 2021-09-28 485
dev_notice(&client->dev, "Device mismatch: %s in device tree, %s
detected\n",
b7792f3ea3924a Zev Weiss 2021-09-28 486
of_id->name, i2c_id->name);
b7792f3ea3924a Zev Weiss 2021-09-28 487
b7792f3ea3924a Zev Weiss 2021-09-28 488 data->id =
i2c_id->driver_data;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 489 info =
&data->info;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 490
a7c69118bdc864 Guenter Roeck 2013-02-06 491 info->pages =
1;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 492
info->format[PSC_VOLTAGE_IN] = direct;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 493
info->format[PSC_VOLTAGE_OUT] = direct;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 494
info->format[PSC_CURRENT_IN] = direct;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 495
info->format[PSC_TEMPERATURE] = direct;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 496
info->format[PSC_POWER] = direct;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 497
58615a94f6a190 Guenter Roeck 2013-02-09 498 info->func[0]
= PMBUS_HAVE_VIN | PMBUS_HAVE_VMON
58615a94f6a190 Guenter Roeck 2013-02-09 499 |
PMBUS_HAVE_PIN | PMBUS_HAVE_IIN | PMBUS_HAVE_STATUS_INPUT
5d9e8b3f809f1c Adamski, Krzysztof (Nokia - PL/Wroclaw 2019-04-14 500) |
PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | PMBUS_HAVE_SAMPLES;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 501
58615a94f6a190 Guenter Roeck 2013-02-09 502 if (data->id
== lm25056) {
58615a94f6a190 Guenter Roeck 2013-02-09 503 info->func[0]
|= PMBUS_HAVE_STATUS_VMON;
58615a94f6a190 Guenter Roeck 2013-02-09 504
info->read_word_data = lm25056_read_word_data;
58615a94f6a190 Guenter Roeck 2013-02-09 505
info->read_byte_data = lm25056_read_byte_data;
c8ccab7ab5c71b Guenter Roeck 2013-03-16 506 data->rlimit
= 0x0fff;
58615a94f6a190 Guenter Roeck 2013-02-09 507 } else {
58615a94f6a190 Guenter Roeck 2013-02-09 508 info->func[0]
|= PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 509
info->read_word_data = lm25066_read_word_data;
c8ccab7ab5c71b Guenter Roeck 2013-03-16 510 data->rlimit
= 0x0fff;
58615a94f6a190 Guenter Roeck 2013-02-09 511 }
03e9bd8dbcee60 Guenter Roeck 2011-07-08 512
info->write_word_data = lm25066_write_word_data;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 513
e53e6497fc9f07 Guenter Roeck 2013-02-09 514 coeff =
&lm25066_coeff[data->id][0];
e53e6497fc9f07 Guenter Roeck 2013-02-09 515
info->m[PSC_TEMPERATURE] = coeff[PSC_TEMPERATURE].m;
e53e6497fc9f07 Guenter Roeck 2013-02-09 516
info->b[PSC_TEMPERATURE] = coeff[PSC_TEMPERATURE].b;
e53e6497fc9f07 Guenter Roeck 2013-02-09 517
info->R[PSC_TEMPERATURE] = coeff[PSC_TEMPERATURE].R;
e53e6497fc9f07 Guenter Roeck 2013-02-09 518
info->m[PSC_VOLTAGE_IN] = coeff[PSC_VOLTAGE_IN].m;
e53e6497fc9f07 Guenter Roeck 2013-02-09 519
info->b[PSC_VOLTAGE_IN] = coeff[PSC_VOLTAGE_IN].b;
e53e6497fc9f07 Guenter Roeck 2013-02-09 520
info->R[PSC_VOLTAGE_IN] = coeff[PSC_VOLTAGE_IN].R;
e53e6497fc9f07 Guenter Roeck 2013-02-09 521
info->m[PSC_VOLTAGE_OUT] = coeff[PSC_VOLTAGE_OUT].m;
e53e6497fc9f07 Guenter Roeck 2013-02-09 522
info->b[PSC_VOLTAGE_OUT] = coeff[PSC_VOLTAGE_OUT].b;
e53e6497fc9f07 Guenter Roeck 2013-02-09 523
info->R[PSC_VOLTAGE_OUT] = coeff[PSC_VOLTAGE_OUT].R;
e53e6497fc9f07 Guenter Roeck 2013-02-09 524
info->R[PSC_CURRENT_IN] = coeff[PSC_CURRENT_IN].R;
e53e6497fc9f07 Guenter Roeck 2013-02-09 525
info->R[PSC_POWER] = coeff[PSC_POWER].R;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 526 if (config &
LM25066_DEV_SETUP_CL) {
e53e6497fc9f07 Guenter Roeck 2013-02-09 527
info->m[PSC_CURRENT_IN] = coeff[PSC_CURRENT_IN_L].m;
ee983171d49b4b Xo Wang 2017-08-29 528
info->b[PSC_CURRENT_IN] = coeff[PSC_CURRENT_IN_L].b;
e53e6497fc9f07 Guenter Roeck 2013-02-09 529
info->m[PSC_POWER] = coeff[PSC_POWER_L].m;
ee983171d49b4b Xo Wang 2017-08-29 530
info->b[PSC_POWER] = coeff[PSC_POWER_L].b;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 531 } else {
e53e6497fc9f07 Guenter Roeck 2013-02-09 532
info->m[PSC_CURRENT_IN] = coeff[PSC_CURRENT_IN].m;
ee983171d49b4b Xo Wang 2017-08-29 533
info->b[PSC_CURRENT_IN] = coeff[PSC_CURRENT_IN].b;
e53e6497fc9f07 Guenter Roeck 2013-02-09 534
info->m[PSC_POWER] = coeff[PSC_POWER].m;
ee983171d49b4b Xo Wang 2017-08-29 535
info->b[PSC_POWER] = coeff[PSC_POWER].b;
03e9bd8dbcee60 Guenter Roeck 2011-07-08 536 }
03e9bd8dbcee60 Guenter Roeck 2011-07-08 537
94ee5fcc240fe9 Zev Weiss 2021-09-28 538 /*
94ee5fcc240fe9 Zev Weiss 2021-09-28 539 * Values in the
TI datasheets are normalized for a 1mOhm sense
94ee5fcc240fe9 Zev Weiss 2021-09-28 540 * resistor;
assume that unless DT specifies a value explicitly.
94ee5fcc240fe9 Zev Weiss 2021-09-28 541 */
94ee5fcc240fe9 Zev Weiss 2021-09-28 542 if
(of_property_read_u32(client->dev.of_node, "shunt-resistor-micro-ohms",
&shunt))
94ee5fcc240fe9 Zev Weiss 2021-09-28 543 shunt = 1000;
94ee5fcc240fe9 Zev Weiss 2021-09-28 544
94ee5fcc240fe9 Zev Weiss 2021-09-28 545
info->m[PSC_CURRENT_IN] = info->m[PSC_CURRENT_IN] * shunt / 1000;
94ee5fcc240fe9 Zev Weiss 2021-09-28 546
info->m[PSC_POWER] = info->m[PSC_POWER] * shunt / 1000;
94ee5fcc240fe9 Zev Weiss 2021-09-28 547
dd43193976b9a7 Stephen Kitt 2020-08-08 548 return
pmbus_do_probe(client, info);
03e9bd8dbcee60 Guenter Roeck 2011-07-08 549 }
03e9bd8dbcee60 Guenter Roeck 2011-07-08 550
--
0-DAY CI Kernel Test Service
https://01.org/lkp