hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/power/supply/rk816_battery.c
....@@ -328,6 +328,9 @@
328328 u8 i;
329329 u16 d;
330330
331
+ if (size < 2)
332
+ return 0;
333
+
331334 for (i = 0; i < size; i++) {
332335 if (value < table[i])
333336 break;
....@@ -2965,6 +2968,8 @@
29652968 FINISH_CHRG_CUR2 : FINISH_CHRG_CUR1;
29662969 finish_sec = base2sec(di->chrg_finish_base);
29672970 soc_sec = di->fcc * 3600 / 100 / DIV(finish_current);
2971
+ if (soc_sec == 0)
2972
+ soc_sec = 1;
29682973 plus_soc = finish_sec / DIV(soc_sec);
29692974 if (finish_sec > soc_sec) {
29702975 rest = finish_sec % soc_sec;
....@@ -4671,7 +4676,7 @@
46714676 }
46724677
46734678 pdata->ocv_size = length / sizeof(u32);
4674
- if (pdata->ocv_size <= 0) {
4679
+ if (pdata->ocv_size < 2) {
46754680 dev_err(dev, "invalid ocv table\n");
46764681 return -EINVAL;
46774682 }