BCC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Vadim Pasternak <[email protected]>
CC: Hans de Goede <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   53e99dcff61e1523ec1c3628b2d564ba15d32eb7
commit: 2f92fdd043d548a14287889742e147f8ed4ee03d platform/mellanox: Remove 
unnecessary code
date:   5 days ago
:::::: branch date: 19 hours ago
:::::: commit date: 5 days ago
config: x86_64-randconfig-m001 
(https://download.01.org/0day-ci/archive/20220907/[email protected]/config)
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/platform/mellanox/mlxreg-lc.c:905 mlxreg_lc_probe() warn: variable 
dereferenced before check 'data->notifier' (see line 828)

vim +905 drivers/platform/mellanox/mlxreg-lc.c

62f9529b8d5c87 Vadim Pasternak 2021-10-02  809  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  810  static int 
mlxreg_lc_probe(struct platform_device *pdev)
62f9529b8d5c87 Vadim Pasternak 2021-10-02  811  {
62f9529b8d5c87 Vadim Pasternak 2021-10-02  812          struct 
mlxreg_core_hotplug_platform_data *par_pdata;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  813          struct mlxreg_core_data 
*data;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  814          struct mlxreg_lc 
*mlxreg_lc;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  815          void *regmap;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  816          int i, err;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  817  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  818          data = 
dev_get_platdata(&pdev->dev);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  819          if (!data)
62f9529b8d5c87 Vadim Pasternak 2021-10-02  820                  return -EINVAL;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  821  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  822          mlxreg_lc = 
devm_kzalloc(&pdev->dev, sizeof(*mlxreg_lc), GFP_KERNEL);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  823          if (!mlxreg_lc)
62f9529b8d5c87 Vadim Pasternak 2021-10-02  824                  return -ENOMEM;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  825  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  826          
mutex_init(&mlxreg_lc->lock);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  827          /* Set event 
notification callback. */
62f9529b8d5c87 Vadim Pasternak 2021-10-02 @828          
data->notifier->user_handler = mlxreg_lc_event_handler;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  829          data->notifier->handle 
= mlxreg_lc;
2f92fdd043d548 Vadim Pasternak 2022-08-23  830  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  831          data->hpdev.adapter = 
i2c_get_adapter(data->hpdev.nr);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  832          if 
(!data->hpdev.adapter) {
62f9529b8d5c87 Vadim Pasternak 2021-10-02  833                  
dev_err(&pdev->dev, "Failed to get adapter for bus %d\n",
62f9529b8d5c87 Vadim Pasternak 2021-10-02  834                          
data->hpdev.nr);
b4b830a34d8046 Vadim Pasternak 2022-07-19  835                  err = -EFAULT;
b4b830a34d8046 Vadim Pasternak 2022-07-19  836                  goto 
i2c_get_adapter_fail;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  837          }
62f9529b8d5c87 Vadim Pasternak 2021-10-02  838  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  839          /* Create device at the 
top of line card I2C tree.*/
62f9529b8d5c87 Vadim Pasternak 2021-10-02  840          data->hpdev.client = 
i2c_new_client_device(data->hpdev.adapter,
62f9529b8d5c87 Vadim Pasternak 2021-10-02  841                                  
                   data->hpdev.brdinfo);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  842          if 
(IS_ERR(data->hpdev.client)) {
62f9529b8d5c87 Vadim Pasternak 2021-10-02  843                  
dev_err(&pdev->dev, "Failed to create client %s at bus %d at addr 0x%02x\n",
62f9529b8d5c87 Vadim Pasternak 2021-10-02  844                          
data->hpdev.brdinfo->type, data->hpdev.nr, data->hpdev.brdinfo->addr);
b4b830a34d8046 Vadim Pasternak 2022-07-19  845                  err = 
PTR_ERR(data->hpdev.client);
b4b830a34d8046 Vadim Pasternak 2022-07-19  846                  goto 
i2c_new_device_fail;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  847          }
62f9529b8d5c87 Vadim Pasternak 2021-10-02  848  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  849          regmap = 
devm_regmap_init_i2c(data->hpdev.client,
62f9529b8d5c87 Vadim Pasternak 2021-10-02  850                                  
      &mlxreg_lc_regmap_conf);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  851          if (IS_ERR(regmap)) {
b4b830a34d8046 Vadim Pasternak 2022-07-19  852                  
dev_err(&pdev->dev, "Failed to create regmap for client %s at bus %d at addr 
0x%02x\n",
b4b830a34d8046 Vadim Pasternak 2022-07-19  853                          
data->hpdev.brdinfo->type, data->hpdev.nr, data->hpdev.brdinfo->addr);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  854                  err = 
PTR_ERR(regmap);
b4b830a34d8046 Vadim Pasternak 2022-07-19  855                  goto 
devm_regmap_init_i2c_fail;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  856          }
62f9529b8d5c87 Vadim Pasternak 2021-10-02  857  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  858          /* Set default 
registers. */
62f9529b8d5c87 Vadim Pasternak 2021-10-02  859          for (i = 0; i < 
mlxreg_lc_regmap_conf.num_reg_defaults; i++) {
62f9529b8d5c87 Vadim Pasternak 2021-10-02  860                  err = 
regmap_write(regmap, mlxreg_lc_regmap_default[i].reg,
62f9529b8d5c87 Vadim Pasternak 2021-10-02  861                                  
   mlxreg_lc_regmap_default[i].def);
b4b830a34d8046 Vadim Pasternak 2022-07-19  862                  if (err) {
b4b830a34d8046 Vadim Pasternak 2022-07-19  863                          
dev_err(&pdev->dev, "Failed to set default regmap %d for client %s at bus %d at 
addr 0x%02x\n",
b4b830a34d8046 Vadim Pasternak 2022-07-19  864                                  
i, data->hpdev.brdinfo->type, data->hpdev.nr,
b4b830a34d8046 Vadim Pasternak 2022-07-19  865                                  
data->hpdev.brdinfo->addr);
b4b830a34d8046 Vadim Pasternak 2022-07-19  866                          goto 
regmap_write_fail;
b4b830a34d8046 Vadim Pasternak 2022-07-19  867                  }
62f9529b8d5c87 Vadim Pasternak 2021-10-02  868          }
62f9529b8d5c87 Vadim Pasternak 2021-10-02  869  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  870          /* Sync registers with 
hardware. */
62f9529b8d5c87 Vadim Pasternak 2021-10-02  871          
regcache_mark_dirty(regmap);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  872          err = 
regcache_sync(regmap);
b4b830a34d8046 Vadim Pasternak 2022-07-19  873          if (err) {
b4b830a34d8046 Vadim Pasternak 2022-07-19  874                  
dev_err(&pdev->dev, "Failed to sync regmap for client %s at bus %d at addr 
0x%02x\n",
b4b830a34d8046 Vadim Pasternak 2022-07-19  875                          
data->hpdev.brdinfo->type, data->hpdev.nr, data->hpdev.brdinfo->addr);
b4b830a34d8046 Vadim Pasternak 2022-07-19  876                  goto 
regcache_sync_fail;
b4b830a34d8046 Vadim Pasternak 2022-07-19  877          }
62f9529b8d5c87 Vadim Pasternak 2021-10-02  878  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  879          par_pdata = 
data->hpdev.brdinfo->platform_data;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  880          mlxreg_lc->par_regmap = 
par_pdata->regmap;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  881          mlxreg_lc->data = data;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  882          mlxreg_lc->dev = 
&pdev->dev;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  883          
platform_set_drvdata(pdev, mlxreg_lc);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  884  
62f9529b8d5c87 Vadim Pasternak 2021-10-02  885          /* Configure line card. 
*/
62f9529b8d5c87 Vadim Pasternak 2021-10-02  886          err = 
mlxreg_lc_config_init(mlxreg_lc, regmap, data);
62f9529b8d5c87 Vadim Pasternak 2021-10-02  887          if (err)
b4b830a34d8046 Vadim Pasternak 2022-07-19  888                  goto 
mlxreg_lc_config_init_fail;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  889  
2f92fdd043d548 Vadim Pasternak 2022-08-23  890          return 0;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  891  
b4b830a34d8046 Vadim Pasternak 2022-07-19  892  mlxreg_lc_config_init_fail:
b4b830a34d8046 Vadim Pasternak 2022-07-19  893  regcache_sync_fail:
b4b830a34d8046 Vadim Pasternak 2022-07-19  894  regmap_write_fail:
b4b830a34d8046 Vadim Pasternak 2022-07-19  895  devm_regmap_init_i2c_fail:
b4b830a34d8046 Vadim Pasternak 2022-07-19  896          if (data->hpdev.client) 
{
b4b830a34d8046 Vadim Pasternak 2022-07-19  897                  
i2c_unregister_device(data->hpdev.client);
b4b830a34d8046 Vadim Pasternak 2022-07-19  898                  
data->hpdev.client = NULL;
b4b830a34d8046 Vadim Pasternak 2022-07-19  899          }
b4b830a34d8046 Vadim Pasternak 2022-07-19  900  i2c_new_device_fail:
62f9529b8d5c87 Vadim Pasternak 2021-10-02  901          
i2c_put_adapter(data->hpdev.adapter);
b4b830a34d8046 Vadim Pasternak 2022-07-19  902          data->hpdev.adapter = 
NULL;
b4b830a34d8046 Vadim Pasternak 2022-07-19  903  i2c_get_adapter_fail:
b4b830a34d8046 Vadim Pasternak 2022-07-19  904          /* Clear event 
notification callback and handle. */
b4b830a34d8046 Vadim Pasternak 2022-07-19 @905          if (data->notifier) {
b4b830a34d8046 Vadim Pasternak 2022-07-19  906                  
data->notifier->user_handler = NULL;
b4b830a34d8046 Vadim Pasternak 2022-07-19  907                  
data->notifier->handle = NULL;
b4b830a34d8046 Vadim Pasternak 2022-07-19  908          }
62f9529b8d5c87 Vadim Pasternak 2021-10-02  909          return err;
62f9529b8d5c87 Vadim Pasternak 2021-10-02  910  }
62f9529b8d5c87 Vadim Pasternak 2021-10-02  911  

:::::: The code at line 905 was first introduced by commit
:::::: b4b830a34d8046633231b7fe87f6f2cb6240dc9f platform/mellanox: mlxreg-lc: 
Fix error flow and extend verbosity

:::::: TO: Vadim Pasternak <[email protected]>
:::::: CC: Hans de Goede <[email protected]>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to