All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 1548/11541] drivers/power/supply/bq256xx_charger.c:1512 bq256xx_hw_init() error: buffer overflow 'bq256xx_watchdog_time' 8 <= 8
@ 2021-02-16  9:16 ` Dan Carpenter
  0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2021-02-16  9:16 UTC (permalink / raw)
  To: kbuild, Ricardo Rivera-Matos
  Cc: lkp, kbuild-all, Linux Memory Management List, Sebastian Reichel

[-- Attachment #1: Type: text/plain, Size: 2411 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   52a0bcb60e40f30211cb5cbbb0f582ec4e91d896
commit: 32e4978bb920d047fe5de3ea42d176f267c01f63 [1548/11541] power: supply: bq256xx: Introduce the BQ256XX charger driver
config: x86_64-randconfig-m001-20210215 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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>

smatch warnings:
drivers/power/supply/bq256xx_charger.c:1512 bq256xx_hw_init() error: buffer overflow 'bq256xx_watchdog_time' 8 <= 8

vim +/bq256xx_watchdog_time +1512 drivers/power/supply/bq256xx_charger.c

32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1503  static int bq256xx_hw_init(struct bq256xx_device *bq)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1504  {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1505  	struct power_supply_battery_info bat_info = { };
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1506  	int wd_reg_val = BQ256XX_WATCHDOG_DIS;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1507  	int ret = 0;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1508  	int i;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1509  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1510  	for (i = 0; i < BQ256XX_NUM_WD_VAL; i++) {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1511  		if (bq->watchdog_timer > bq256xx_watchdog_time[i] &&
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06 @1512  		    bq->watchdog_timer < bq256xx_watchdog_time[i + 1])
                                                                                                               ^^^^^
The static checker is worried about that "i + 1" can be
== BQ256XX_NUM_WD_VAL.  Potentially the bq256xx_watchdog_time[] is
too high so this is impossible?

32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1513  			wd_reg_val = i;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1514  	}
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1515  	ret = regmap_update_bits(bq->regmap, BQ256XX_CHARGER_CONTROL_1,
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1516  				 BQ256XX_WATCHDOG_MASK, wd_reg_val <<
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1517  						BQ256XX_WDT_BIT_SHIFT);

---
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: 30996 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [linux-next:master 1548/11541] drivers/power/supply/bq256xx_charger.c:1512 bq256xx_hw_init() error: buffer overflow 'bq256xx_watchdog_time' 8 <= 8
@ 2021-02-16  9:16 ` Dan Carpenter
  0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2021-02-16  9:16 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 2450 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   52a0bcb60e40f30211cb5cbbb0f582ec4e91d896
commit: 32e4978bb920d047fe5de3ea42d176f267c01f63 [1548/11541] power: supply: bq256xx: Introduce the BQ256XX charger driver
config: x86_64-randconfig-m001-20210215 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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>

smatch warnings:
drivers/power/supply/bq256xx_charger.c:1512 bq256xx_hw_init() error: buffer overflow 'bq256xx_watchdog_time' 8 <= 8

vim +/bq256xx_watchdog_time +1512 drivers/power/supply/bq256xx_charger.c

32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1503  static int bq256xx_hw_init(struct bq256xx_device *bq)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1504  {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1505  	struct power_supply_battery_info bat_info = { };
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1506  	int wd_reg_val = BQ256XX_WATCHDOG_DIS;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1507  	int ret = 0;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1508  	int i;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1509  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1510  	for (i = 0; i < BQ256XX_NUM_WD_VAL; i++) {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1511  		if (bq->watchdog_timer > bq256xx_watchdog_time[i] &&
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06 @1512  		    bq->watchdog_timer < bq256xx_watchdog_time[i + 1])
                                                                                                               ^^^^^
The static checker is worried about that "i + 1" can be
== BQ256XX_NUM_WD_VAL.  Potentially the bq256xx_watchdog_time[] is
too high so this is impossible?

32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1513  			wd_reg_val = i;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1514  	}
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1515  	ret = regmap_update_bits(bq->regmap, BQ256XX_CHARGER_CONTROL_1,
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1516  				 BQ256XX_WATCHDOG_MASK, wd_reg_val <<
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1517  						BQ256XX_WDT_BIT_SHIFT);

---
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: 30996 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [linux-next:master 1548/11541] drivers/power/supply/bq256xx_charger.c:1512 bq256xx_hw_init() error: buffer overflow 'bq256xx_watchdog_time' 8 <= 8
@ 2021-02-16  9:16 ` Dan Carpenter
  0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2021-02-16  9:16 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 2450 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   52a0bcb60e40f30211cb5cbbb0f582ec4e91d896
commit: 32e4978bb920d047fe5de3ea42d176f267c01f63 [1548/11541] power: supply: bq256xx: Introduce the BQ256XX charger driver
config: x86_64-randconfig-m001-20210215 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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>

smatch warnings:
drivers/power/supply/bq256xx_charger.c:1512 bq256xx_hw_init() error: buffer overflow 'bq256xx_watchdog_time' 8 <= 8

vim +/bq256xx_watchdog_time +1512 drivers/power/supply/bq256xx_charger.c

32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1503  static int bq256xx_hw_init(struct bq256xx_device *bq)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1504  {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1505  	struct power_supply_battery_info bat_info = { };
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1506  	int wd_reg_val = BQ256XX_WATCHDOG_DIS;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1507  	int ret = 0;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1508  	int i;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1509  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1510  	for (i = 0; i < BQ256XX_NUM_WD_VAL; i++) {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1511  		if (bq->watchdog_timer > bq256xx_watchdog_time[i] &&
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06 @1512  		    bq->watchdog_timer < bq256xx_watchdog_time[i + 1])
                                                                                                               ^^^^^
The static checker is worried about that "i + 1" can be
== BQ256XX_NUM_WD_VAL.  Potentially the bq256xx_watchdog_time[] is
too high so this is impossible?

32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1513  			wd_reg_val = i;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1514  	}
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1515  	ret = regmap_update_bits(bq->regmap, BQ256XX_CHARGER_CONTROL_1,
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1516  				 BQ256XX_WATCHDOG_MASK, wd_reg_val <<
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1517  						BQ256XX_WDT_BIT_SHIFT);

---
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: 30996 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [linux-next:master 1548/11541] drivers/power/supply/bq256xx_charger.c:1512 bq256xx_hw_init() error: buffer overflow 'bq256xx_watchdog_time' 8 <= 8
@ 2021-02-15 21:07 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-02-15 21:07 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 7411 bytes --]

CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: "Ricardo Rivera-Matos" <r-rivera-matos@ti.com>
CC: Sebastian Reichel <sre@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   52a0bcb60e40f30211cb5cbbb0f582ec4e91d896
commit: 32e4978bb920d047fe5de3ea42d176f267c01f63 [1548/11541] power: supply: bq256xx: Introduce the BQ256XX charger driver
:::::: branch date: 12 hours ago
:::::: commit date: 6 weeks ago
config: x86_64-randconfig-m001-20210215 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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>

smatch warnings:
drivers/power/supply/bq256xx_charger.c:1512 bq256xx_hw_init() error: buffer overflow 'bq256xx_watchdog_time' 8 <= 8

vim +/bq256xx_watchdog_time +1512 drivers/power/supply/bq256xx_charger.c

32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1502  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1503  static int bq256xx_hw_init(struct bq256xx_device *bq)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1504  {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1505  	struct power_supply_battery_info bat_info = { };
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1506  	int wd_reg_val = BQ256XX_WATCHDOG_DIS;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1507  	int ret = 0;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1508  	int i;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1509  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1510  	for (i = 0; i < BQ256XX_NUM_WD_VAL; i++) {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1511  		if (bq->watchdog_timer > bq256xx_watchdog_time[i] &&
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06 @1512  		    bq->watchdog_timer < bq256xx_watchdog_time[i + 1])
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1513  			wd_reg_val = i;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1514  	}
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1515  	ret = regmap_update_bits(bq->regmap, BQ256XX_CHARGER_CONTROL_1,
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1516  				 BQ256XX_WATCHDOG_MASK, wd_reg_val <<
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1517  						BQ256XX_WDT_BIT_SHIFT);
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1518  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1519  	ret = power_supply_get_battery_info(bq->charger, &bat_info);
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1520  	if (ret) {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1521  		dev_warn(bq->dev, "battery info missing, default values will be applied\n");
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1522  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1523  		bat_info.constant_charge_current_max_ua =
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1524  				bq->chip_info->bq256xx_def_ichg;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1525  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1526  		bat_info.constant_charge_voltage_max_uv =
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1527  				bq->chip_info->bq256xx_def_vbatreg;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1528  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1529  		bat_info.precharge_current_ua =
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1530  				bq->chip_info->bq256xx_def_iprechg;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1531  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1532  		bat_info.charge_term_current_ua =
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1533  				bq->chip_info->bq256xx_def_iterm;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1534  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1535  		bq->init_data.ichg_max =
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1536  				bq->chip_info->bq256xx_max_ichg;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1537  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1538  		bq->init_data.vbatreg_max =
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1539  				bq->chip_info->bq256xx_max_vbatreg;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1540  	} else {
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1541  		bq->init_data.ichg_max =
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1542  			bat_info.constant_charge_current_max_ua;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1543  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1544  		bq->init_data.vbatreg_max =
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1545  			bat_info.constant_charge_voltage_max_uv;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1546  	}
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1547  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1548  	ret = bq->chip_info->bq256xx_set_vindpm(bq, bq->init_data.vindpm);
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1549  	if (ret)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1550  		return ret;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1551  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1552  	ret = bq->chip_info->bq256xx_set_iindpm(bq, bq->init_data.iindpm);
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1553  	if (ret)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1554  		return ret;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1555  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1556  	ret = bq->chip_info->bq256xx_set_ichg(bq,
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1557  				bat_info.constant_charge_current_max_ua);
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1558  	if (ret)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1559  		return ret;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1560  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1561  	ret = bq->chip_info->bq256xx_set_iprechg(bq,
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1562  				bat_info.precharge_current_ua);
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1563  	if (ret)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1564  		return ret;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1565  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1566  	ret = bq->chip_info->bq256xx_set_vbatreg(bq,
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1567  				bat_info.constant_charge_voltage_max_uv);
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1568  	if (ret)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1569  		return ret;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1570  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1571  	ret = bq->chip_info->bq256xx_set_iterm(bq,
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1572  				bat_info.charge_term_current_ua);
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1573  	if (ret)
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1574  		return ret;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1575  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1576  	power_supply_put_battery_info(bq->charger, &bat_info);
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1577  
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1578  	return 0;
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1579  }
32e4978bb920d0 Ricardo Rivera-Matos 2021-01-06  1580  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30996 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-02-16  9:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-16  9:16 [linux-next:master 1548/11541] drivers/power/supply/bq256xx_charger.c:1512 bq256xx_hw_init() error: buffer overflow 'bq256xx_watchdog_time' 8 <= 8 Dan Carpenter
2021-02-16  9:16 ` Dan Carpenter
2021-02-16  9:16 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2021-02-15 21:07 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.