Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
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 > > 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
Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
On Tue, Mar 02, 2021 at 04:47:01PM +0100, Linus Walleij wrote: > On Sat, Feb 27, 2021 at 10:22 AM Dan Carpenter > 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
Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
On Tue 02 Mar 09:47 CST 2021, Linus Walleij wrote: > On Sat, Feb 27, 2021 at 10:22 AM Dan Carpenter > 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
Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
On Tue, Mar 02, 2021 at 04:47:01PM +0100, Linus Walleij wrote: > On Sat, Feb 27, 2021 at 10:22 AM Dan Carpenter > 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
Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
On Sat, Feb 27, 2021 at 10:22 AM Dan Carpenter 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
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.
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 Reported-by: Dan Carpenter 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)