From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Nathan Rossi <nathan@nathanrossi.com>,
linux-hwmon@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: lkp@intel.com, kbuild-all@lists.01.org,
Nathan Rossi <nathan@nathanrossi.com>,
Jean Delvare <jdelvare@suse.com>,
Guenter Roeck <linux@roeck-us.net>,
Jonathan Corbet <corbet@lwn.net>
Subject: Re: [PATCH 2/2] hwmon: Driver for Texas Instruments INA238
Date: Wed, 3 Nov 2021 17:52:32 +0300 [thread overview]
Message-ID: <202110281334.zCoIMxK7-lkp@intel.com> (raw)
In-Reply-To: <20211025025805.618566-2-nathan@nathanrossi.com>
Hi Nathan,
url: https://github.com/0day-ci/linux/commits/Nathan-Rossi/Driver-for-TI-INA238-I2C-Power-Monitor/20211025-105911
base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next
config: x86_64-randconfig-m001-20211027 (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/hwmon/ina238.c:304 ina238_alert_store() error: uninitialized symbol 'regval'.
vim +/regval +304 drivers/hwmon/ina238.c
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 243 static ssize_t ina238_alert_store(struct device *dev,
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 244 struct device_attribute *da,
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 245 const char *buf, size_t count)
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 246 {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 247 struct sensor_device_attribute *attr = to_sensor_dev_attr(da);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 248 struct ina238_data *data = dev_get_drvdata(dev);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 249 long long val;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 250 int regval;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 251 int ret;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 252
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 253 ret = kstrtoll(buf, 10, &val);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 254 if (ret < 0)
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 255 return ret;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 256
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 257 /* convert decimal to register value */
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 258 switch (attr->index) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 259 case INA238_SHUNT_OVER_VOLTAGE:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 260 case INA238_SHUNT_UNDER_VOLTAGE:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 261 /* signed */
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 262 regval = div_s64((val * 1000), INA238_SHUNT_VOLTAGE_LSB);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 263 if (regval > S16_MAX || regval < S16_MIN) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 264 ret = -EINVAL;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 265 goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 266 }
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 267 break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 268 case INA238_BUS_OVER_VOLTAGE:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 269 case INA238_BUS_UNDER_VOLTAGE:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 270 regval = div_u64((val * 1000), INA238_BUS_VOLTAGE_LSB);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 271 if (regval > U16_MAX || regval < 0) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 272 ret = -EINVAL;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 273 goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 274 }
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 275 break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 276 case INA238_POWER_LIMIT:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 277 /*
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 278 * Compared against the 24-bit power register, lower 8-bits are
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 279 * truncated. Same conversion to/from uW as POWER register.
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 280 */
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 281 regval = div_u64(val * 5 * data->rshunt,
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 282 1000 * INA238_FIXED_SHUNT) >> 8;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 283 if (regval > U16_MAX || regval < 0) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 284 ret = -EINVAL;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 285 goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 286 }
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 287 break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 288 case INA238_TEMP_LIMIT:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 289 /* Bits 15-4 of register */
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 290 regval = (div_s64(val, INA238_DIE_TEMP_LSB) << 4);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 291 if (regval > S16_MAX || regval < S16_MIN) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 292 ret = -EINVAL;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 293 goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 294 }
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 295 regval = regval & 0xfff0;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 296 break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 297 default:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 298 WARN_ON_ONCE(1);
regval isn't set on this path.
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 299 break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 300 }
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 301
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 302 mutex_lock(&data->config_lock);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 303
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 @304 ret = regmap_write(data->regmap, attr->index, regval);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 305 if (ret < 0)
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 306 goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 307
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 308 ret = count;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 309 abort:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 310 mutex_unlock(&data->config_lock);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 311 return ret;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 312 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
next prev parent reply other threads:[~2021-11-03 14:53 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-25 2:58 [PATCH 0/2] Driver for TI INA238 I2C Power Monitor Nathan Rossi
2021-10-25 2:58 ` [PATCH 1/2] dt-bindings: hwmon: ti,ina2xx: Document ti,ina238 compatible string Nathan Rossi
2021-10-25 2:58 ` [PATCH 2/2] hwmon: Driver for Texas Instruments INA238 Nathan Rossi
2021-10-25 5:06 ` Guenter Roeck
2021-10-25 6:27 ` Nathan Rossi
2021-10-25 15:45 ` Guenter Roeck
2021-10-26 7:54 ` Nathan Rossi
2021-10-27 9:32 ` kernel test robot
2021-11-03 14:52 ` Dan Carpenter [this message]
2021-10-27 7:42 ` [PATCH v2 0/3] Driver for TI INA238 I2C Power Monitor Nathan Rossi
2021-10-27 7:42 ` [PATCH v2 1/3] dt-bindings: hwmon: ti,ina2xx: Document ti,ina238 compatible string Nathan Rossi
2021-10-27 7:42 ` [PATCH v2 3/3] hwmon: Driver for Texas Instruments INA238 Nathan Rossi
2021-10-27 15:56 ` Guenter Roeck
2021-10-27 7:42 ` [PATCH v2 2/3] dt-bindings: hwmon: ti,ina2xx: Add ti,shunt-gain property Nathan Rossi
2021-10-27 14:12 ` Rob Herring
2021-10-27 15:57 ` [PATCH v2 0/3] Driver for TI INA238 I2C Power Monitor Guenter Roeck
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=202110281334.zCoIMxK7-lkp@intel.com \
--to=dan.carpenter@oracle.com \
--cc=corbet@lwn.net \
--cc=jdelvare@suse.com \
--cc=kbuild-all@lists.01.org \
--cc=kbuild@lists.01.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=lkp@intel.com \
--cc=nathan@nathanrossi.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox