* drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
@ 2021-02-27 9:21 Dan Carpenter
2021-03-02 15:47 ` Linus Walleij
0 siblings, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2021-02-27 9:21 UTC (permalink / raw)
To: kbuild, Srinivas Kandagatla
Cc: lkp, kbuild-all, linux-kernel, Linus Walleij, Bjorn Andersson
[-- Attachment #1: Type: text/plain, Size: 7500 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2c87f7a38f930ef6f6a7bdd04aeb82ce3971b54b
commit: 6e261d1090d6db0e9dd22978b6f38a2c58558a3f pinctrl: qcom: Add sm8250 lpass lpi pinctrl driver
config: arm64-randconfig-m031-20210226 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 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>
New smatch warnings:
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
Old smatch warnings:
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:457 lpi_config_set() error: uninitialized symbol 'pullup'.
vim +/strength +458 drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
6e261d1090d6db Srinivas Kandagatla 2020-12-02 391 static int lpi_config_set(struct pinctrl_dev *pctldev, unsigned int group,
6e261d1090d6db Srinivas Kandagatla 2020-12-02 392 unsigned long *configs, unsigned int nconfs)
6e261d1090d6db Srinivas Kandagatla 2020-12-02 393 {
6e261d1090d6db Srinivas Kandagatla 2020-12-02 394 struct lpi_pinctrl *pctrl = dev_get_drvdata(pctldev->dev);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 395 unsigned int param, arg, pullup, strength;
^^^^^^^^
6e261d1090d6db Srinivas Kandagatla 2020-12-02 396 bool value, output_enabled = false;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 397 const struct lpi_pingroup *g;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 398 unsigned long sval;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 399 int i, slew_offset;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 400 u32 val;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 401
6e261d1090d6db Srinivas Kandagatla 2020-12-02 402 g = &pctrl->data->groups[group];
6e261d1090d6db Srinivas Kandagatla 2020-12-02 403 for (i = 0; i < nconfs; i++) {
6e261d1090d6db Srinivas Kandagatla 2020-12-02 404 param = pinconf_to_config_param(configs[i]);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 405 arg = pinconf_to_config_argument(configs[i]);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 406
6e261d1090d6db Srinivas Kandagatla 2020-12-02 407 switch (param) {
6e261d1090d6db Srinivas Kandagatla 2020-12-02 408 case PIN_CONFIG_BIAS_DISABLE:
6e261d1090d6db Srinivas Kandagatla 2020-12-02 409 pullup = LPI_GPIO_BIAS_DISABLE;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 410 break;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 411 case PIN_CONFIG_BIAS_PULL_DOWN:
6e261d1090d6db Srinivas Kandagatla 2020-12-02 412 pullup = LPI_GPIO_PULL_DOWN;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 413 break;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 414 case PIN_CONFIG_BIAS_BUS_HOLD:
6e261d1090d6db Srinivas Kandagatla 2020-12-02 415 pullup = LPI_GPIO_KEEPER;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 416 break;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 417 case PIN_CONFIG_BIAS_PULL_UP:
6e261d1090d6db Srinivas Kandagatla 2020-12-02 418 pullup = LPI_GPIO_PULL_UP;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 419 break;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 420 case PIN_CONFIG_INPUT_ENABLE:
6e261d1090d6db Srinivas Kandagatla 2020-12-02 421 output_enabled = false;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 422 break;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 423 case PIN_CONFIG_OUTPUT:
6e261d1090d6db Srinivas Kandagatla 2020-12-02 424 output_enabled = true;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 425 value = arg;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 426 break;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 427 case PIN_CONFIG_DRIVE_STRENGTH:
6e261d1090d6db Srinivas Kandagatla 2020-12-02 428 strength = arg;
^^^^^^^^^^^^^^^
Only initialized here.
6e261d1090d6db Srinivas Kandagatla 2020-12-02 429 break;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 430 case PIN_CONFIG_SLEW_RATE:
6e261d1090d6db Srinivas Kandagatla 2020-12-02 431 if (arg > LPI_SLEW_RATE_MAX) {
6e261d1090d6db Srinivas Kandagatla 2020-12-02 432 dev_err(pctldev->dev, "invalid slew rate %u for pin: %d\n",
6e261d1090d6db Srinivas Kandagatla 2020-12-02 433 arg, group);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 434 return -EINVAL;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 435 }
6e261d1090d6db Srinivas Kandagatla 2020-12-02 436
6e261d1090d6db Srinivas Kandagatla 2020-12-02 437 slew_offset = g->slew_offset;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 438 if (slew_offset == NO_SLEW)
6e261d1090d6db Srinivas Kandagatla 2020-12-02 439 break;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 440
6e261d1090d6db Srinivas Kandagatla 2020-12-02 441 mutex_lock(&pctrl->slew_access_lock);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 442
6e261d1090d6db Srinivas Kandagatla 2020-12-02 443 sval = ioread32(pctrl->slew_base + LPI_SLEW_RATE_CTL_REG);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 444 sval &= ~(LPI_SLEW_RATE_MASK << slew_offset);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 445 sval |= arg << slew_offset;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 446 iowrite32(sval, pctrl->slew_base + LPI_SLEW_RATE_CTL_REG);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 447
6e261d1090d6db Srinivas Kandagatla 2020-12-02 448 mutex_unlock(&pctrl->slew_access_lock);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 449 break;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 450 default:
6e261d1090d6db Srinivas Kandagatla 2020-12-02 451 return -EINVAL;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 452 }
6e261d1090d6db Srinivas Kandagatla 2020-12-02 453 }
6e261d1090d6db Srinivas Kandagatla 2020-12-02 454
6e261d1090d6db Srinivas Kandagatla 2020-12-02 455 val = lpi_gpio_read(pctrl, group, LPI_GPIO_CFG_REG);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 456
6e261d1090d6db Srinivas Kandagatla 2020-12-02 457 u32p_replace_bits(&val, pullup, LPI_GPIO_PULL_MASK);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 @458 u32p_replace_bits(&val, LPI_GPIO_DS_TO_VAL(strength),
^^^^^^^^
6e261d1090d6db Srinivas Kandagatla 2020-12-02 459 LPI_GPIO_OUT_STRENGTH_MASK);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 460 u32p_replace_bits(&val, output_enabled, LPI_GPIO_OE_MASK);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 461
6e261d1090d6db Srinivas Kandagatla 2020-12-02 462 lpi_gpio_write(pctrl, group, LPI_GPIO_CFG_REG, val);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 463
6e261d1090d6db Srinivas Kandagatla 2020-12-02 464 if (output_enabled) {
6e261d1090d6db Srinivas Kandagatla 2020-12-02 465 val = u32_encode_bits(value ? 1 : 0, LPI_GPIO_VALUE_OUT_MASK);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 466 lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, val);
6e261d1090d6db Srinivas Kandagatla 2020-12-02 467 }
6e261d1090d6db Srinivas Kandagatla 2020-12-02 468
6e261d1090d6db Srinivas Kandagatla 2020-12-02 469 return 0;
6e261d1090d6db Srinivas Kandagatla 2020-12-02 470 }
---
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: 32773 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
2021-02-27 9:21 drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength' Dan Carpenter
@ 2021-03-02 15:47 ` Linus Walleij
2021-03-02 16:28 ` Dan Carpenter
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Linus Walleij @ 2021-03-02 15:47 UTC (permalink / raw)
To: Dan Carpenter, Srinivas Kandagatla
Cc: kbuild, kbuild test robot, kbuild-all, linux-kernel, Bjorn Andersson
On Sat, Feb 27, 2021 at 10:22 AM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> New smatch warnings:
> drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
>
> Old smatch warnings:
> drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:457 lpi_config_set() error: uninitialized symbol 'pullup'.
I don't think these are real problems, but maybe there is some way to explicitly
express that so that smatch knows as well?
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
2021-03-02 15:47 ` Linus Walleij
@ 2021-03-02 16:28 ` Dan Carpenter
2021-03-02 16:32 ` Dan Carpenter
2021-03-02 16:53 ` Bjorn Andersson
2021-03-02 17:01 ` Dan Carpenter
2 siblings, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2021-03-02 16:28 UTC (permalink / raw)
To: Linus Walleij
Cc: Srinivas Kandagatla, kbuild, kbuild test robot, kbuild-all,
linux-kernel, Bjorn Andersson
On Tue, Mar 02, 2021 at 04:47:01PM +0100, Linus Walleij wrote:
> On Sat, Feb 27, 2021 at 10:22 AM Dan Carpenter <dan.carpenter@oracle.com> wrote:
>
> > New smatch warnings:
> > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
> >
> > Old smatch warnings:
> > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:457 lpi_config_set() error: uninitialized symbol 'pullup'.
>
> I don't think these are real problems, but maybe there is some way to explicitly
> express that so that smatch knows as well?
They will call syzbot warning at runtime as well. Syzbot complains
about the read, and not that the value is important for flow analysis.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
2021-03-02 16:28 ` Dan Carpenter
@ 2021-03-02 16:32 ` Dan Carpenter
0 siblings, 0 replies; 6+ messages in thread
From: Dan Carpenter @ 2021-03-02 16:32 UTC (permalink / raw)
To: Linus Walleij
Cc: Srinivas Kandagatla, kbuild, kbuild test robot, kbuild-all,
linux-kernel, Bjorn Andersson
On Tue, Mar 02, 2021 at 07:28:05PM +0300, Dan Carpenter wrote:
> On Tue, Mar 02, 2021 at 04:47:01PM +0100, Linus Walleij wrote:
> > On Sat, Feb 27, 2021 at 10:22 AM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> >
> > > New smatch warnings:
> > > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
> > >
> > > Old smatch warnings:
> > > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:457 lpi_config_set() error: uninitialized symbol 'pullup'.
> >
> > I don't think these are real problems, but maybe there is some way to explicitly
> > express that so that smatch knows as well?
>
> They will call syzbot warning at runtime as well. Syzbot complains
> about the read, and not that the value is important for flow analysis.
s/flow analysis/flow control/... Syzbot doesn't care if the
uninitialized value affects runtime.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
2021-03-02 15:47 ` Linus Walleij
2021-03-02 16:28 ` Dan Carpenter
@ 2021-03-02 16:53 ` Bjorn Andersson
2021-03-02 17:01 ` Dan Carpenter
2 siblings, 0 replies; 6+ messages in thread
From: Bjorn Andersson @ 2021-03-02 16:53 UTC (permalink / raw)
To: Linus Walleij
Cc: Dan Carpenter, Srinivas Kandagatla, kbuild, kbuild test robot,
kbuild-all, linux-kernel
On Tue 02 Mar 09:47 CST 2021, Linus Walleij wrote:
> On Sat, Feb 27, 2021 at 10:22 AM Dan Carpenter <dan.carpenter@oracle.com> wrote:
>
> > New smatch warnings:
> > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
> >
> > Old smatch warnings:
> > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:457 lpi_config_set() error: uninitialized symbol 'pullup'.
>
> I don't think these are real problems, but maybe there is some way to explicitly
> express that so that smatch knows as well?
>
Perhaps I'm reading it wrong, but wouldn't a state that doesn't specify
drive-strength or bias cause these properties to be written out as some
undefined/uninitialized value? (I.e. isn't the report correct?)
Regards,
Bjorn
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
2021-03-02 15:47 ` Linus Walleij
2021-03-02 16:28 ` Dan Carpenter
2021-03-02 16:53 ` Bjorn Andersson
@ 2021-03-02 17:01 ` Dan Carpenter
2 siblings, 0 replies; 6+ messages in thread
From: Dan Carpenter @ 2021-03-02 17:01 UTC (permalink / raw)
To: Linus Walleij
Cc: Srinivas Kandagatla, kbuild, kbuild test robot, kbuild-all,
linux-kernel, Bjorn Andersson
On Tue, Mar 02, 2021 at 04:47:01PM +0100, Linus Walleij wrote:
> On Sat, Feb 27, 2021 at 10:22 AM Dan Carpenter <dan.carpenter@oracle.com> wrote:
>
> > New smatch warnings:
> > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
> >
> > Old smatch warnings:
> > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:457 lpi_config_set() error: uninitialized symbol 'pullup'.
>
> I don't think these are real problems, but maybe there is some way to explicitly
> express that so that smatch knows as well?
>
We chould just initialize it to zero. Eventually, (or maybe already???),
zero initializing stack variables will be the default for kernels built
with modern compilers. So initializing it to zero in that case won't
change runtime at all.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-03-02 22:37 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-27 9:21 drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength' Dan Carpenter
2021-03-02 15:47 ` Linus Walleij
2021-03-02 16:28 ` Dan Carpenter
2021-03-02 16:32 ` Dan Carpenter
2021-03-02 16:53 ` Bjorn Andersson
2021-03-02 17:01 ` Dan Carpenter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).