Re: drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.

2021-03-02 Thread Dan Carpenter
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'.

2021-03-02 Thread Dan Carpenter
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'.

2021-03-02 Thread Bjorn Andersson
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'.

2021-03-02 Thread Dan Carpenter
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'.

2021-03-02 Thread Linus Walleij
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'.

2021-02-27 Thread Dan Carpenter
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)