Hi Matti,

url:    
https://github.com/0day-ci/linux/commits/Matti-Vaittinen/support-ROHM-BD70528-PMIC/20190205-114747
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next

New smatch warnings:
drivers/regulator/bd718x7-regulator.c:1041 bd718xx_probe() error: buffer 
overflow 'pmic_regulators' 2 <= 2

Old smatch warnings:
drivers/regulator/bd718x7-regulator.c:1081 bd718xx_probe() error: buffer 
overflow 'pmic_regulators' 2 <= 2

# 
https://github.com/0day-ci/linux/commit/299c653896fe08769fc1d618f422461b6f95b15e
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 299c653896fe08769fc1d618f422461b6f95b15e
vim +/pmic_regulators +1041 drivers/regulator/bd718x7-regulator.c

ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1015  
dd2be639 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1016  static int bd718xx_probe(struct platform_device *pdev)
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1017  {
bcb047eb drivers/regulator/bd718x7-regulator.c Axel Lin           2018-10-04  
1018      struct bd718xx *mfd;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1019      struct regulator_config config = { 0 };
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1020      struct bd718xx_pmic_inits pmic_regulators[] = {
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1021              [ROHM_CHIP_TYPE_BD71837] = {
de226ebd drivers/regulator/bd718x7-regulator.c Geert Uytterhoeven 2018-10-28  
1022                      .r_datas = bd71837_regulators,
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1023                      .r_amount = ARRAY_SIZE(bd71837_regulators),
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1024              },
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1025              [ROHM_CHIP_TYPE_BD71847] = {
                                                                                
                 ^^^^^^^^^^^^^^^^^^^^^^
de226ebd drivers/regulator/bd718x7-regulator.c Geert Uytterhoeven 2018-10-28  
1026                      .r_datas = bd71847_regulators,
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1027                      .r_amount = ARRAY_SIZE(bd71847_regulators),
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1028              },
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1029      };
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1030  
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1031      int i, j, err;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1032  
bcb047eb drivers/regulator/bd718x7-regulator.c Axel Lin           2018-10-04  
1033      mfd = dev_get_drvdata(pdev->dev.parent);
bcb047eb drivers/regulator/bd718x7-regulator.c Axel Lin           2018-10-04  
1034      if (!mfd) {
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1035              dev_err(&pdev->dev, "No MFD driver data\n");
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1036              err = -EINVAL;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1037              goto err;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1038      }
bcb047eb drivers/regulator/bd718x7-regulator.c Axel Lin           2018-10-04  
1039  
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1040      if (mfd->chip.chip_type >= ROHM_CHIP_TYPE_AMOUNT ||
                                                                                
                                   ^^^^^^^^^^^^^^^^^^^^^


299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04 
@1041          !pmic_regulators[mfd->chip.chip_type].r_datas) {
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1042              dev_err(&pdev->dev, "Unsupported chip type\n");
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1043              err = -EINVAL;
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1044              goto err;
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1045      }
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1046  
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1047      /* Register LOCK release */
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1048      err = regmap_update_bits(mfd->chip.regmap, BD718XX_REG_REGLOCK,
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1049                               (REGLOCK_PWRSEQ | REGLOCK_VREG), 0);
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1050      if (err) {
bcb047eb drivers/regulator/bd718x7-regulator.c Axel Lin           2018-10-04  
1051              dev_err(&pdev->dev, "Failed to unlock PMIC (%d)\n", err);
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1052              goto err;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1053      } else {
bcb047eb drivers/regulator/bd718x7-regulator.c Axel Lin           2018-10-04  
1054              dev_dbg(&pdev->dev, "Unlocked lock register 0x%x\n",
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1055                      BD718XX_REG_REGLOCK);
823f18f8 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-08-29  
1056      }
823f18f8 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-08-29  
1057  
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1058      /* At poweroff transition PMIC HW disables EN bit for regulators but
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1059       * leaves SEL bit untouched. So if state transition from POWEROFF
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1060       * is done to SNVS - then all power rails controlled by SW (having
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1061       * SEL bit set) stay disabled as EN is cleared. This may result boot
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1062       * failure if any crucial systems are powered by these rails.
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1063       *
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1064       * Change the next stage from poweroff to be READY instead of SNVS
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1065       * for all reset types because OTP loading at READY will clear SEL
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1066       * bit allowing HW defaults for power rails to be used
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1067       */
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1068      err = regmap_update_bits(mfd->chip.regmap, BD718XX_REG_TRANS_COND1,
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1069                               BD718XX_ON_REQ_POWEROFF_MASK |
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1070                               BD718XX_SWRESET_POWEROFF_MASK |
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1071                               BD718XX_WDOG_POWEROFF_MASK |
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1072                               BD718XX_KEY_L_POWEROFF_MASK,
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1073                               BD718XX_POWOFF_TO_RDY);
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1074      if (err) {
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1075              dev_err(&pdev->dev, "Failed to change reset target\n");
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1076              goto err;
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1077      } else {
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1078              dev_dbg(&pdev->dev, "Changed all resets from SVNS to 
READY\n");
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1079      }
e770b18b drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2018-11-07  
1080  
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1081      for (i = 0; i < pmic_regulators[mfd->chip.chip_type].r_amount; i++) {
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1082  
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1083              const struct regulator_desc *desc;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1084              struct regulator_dev *rdev;
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1085              const struct bd718xx_regulator_data *r;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1086  
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1087              r = &pmic_regulators[mfd->chip.chip_type].r_datas[i];
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1088              desc = &r->desc;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1089  
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1090              config.dev = pdev->dev.parent;
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1091              config.regmap = mfd->chip.regmap;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1092  
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1093              rdev = devm_regulator_register(&pdev->dev, desc, &config);
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1094              if (IS_ERR(rdev)) {
bcb047eb drivers/regulator/bd718x7-regulator.c Axel Lin           2018-10-04  
1095                      dev_err(&pdev->dev,
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1096                              "failed to register %s regulator\n",
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1097                              desc->name);
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1098                      err = PTR_ERR(rdev);
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1099                      goto err;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1100              }
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1101              /* Regulator register gets the regulator constraints and
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1102               * applies them (set_machine_constraints). This should have
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1103               * turned the control register(s) to correct values and we
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1104               * can now switch the control from PMIC state machine to the
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1105               * register interface
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1106               */
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1107              err = regmap_update_bits(mfd->chip.regmap, r->init.reg,
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1108                                       r->init.mask, r->init.val);
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1109              if (err) {
bcb047eb drivers/regulator/bd718x7-regulator.c Axel Lin           2018-10-04  
1110                      dev_err(&pdev->dev,
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1111                              "Failed to write BUCK/LDO SEL bit for (%s)\n",
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1112                              desc->name);
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1113                      goto err;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1114              }
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1115              for (j = 0; j < r->additional_init_amnt; j++) {
299c6538 drivers/regulator/bd718x7-regulator.c Matti Vaittinen    2019-02-04  
1116                      err = regmap_update_bits(mfd->chip.regmap,
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1117                                               r->additional_inits[j].reg,
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1118                                               r->additional_inits[j].mask,
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1119                                               r->additional_inits[j].val);
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1120                      if (err) {
bcb047eb drivers/regulator/bd718x7-regulator.c Axel Lin           2018-10-04  
1121                              dev_err(&pdev->dev,
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1122                                      "Buck (%s) initialization failed\n",
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1123                                      desc->name);
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1124                              goto err;
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1125                      }
494edd26 drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-09-14  
1126              }
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1127      }
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1128  
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1129  err:
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1130      return err;
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1131  }
ba08799e drivers/regulator/bd71837-regulator.c Matti Vaittinen    2018-05-30  
1132  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild

Reply via email to