hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/power/supply/rk818_battery.c
....@@ -287,6 +287,9 @@
287287 u8 i;
288288 u16 d;
289289
290
+ if (size < 2)
291
+ return 0;
292
+
290293 for (i = 0; i < size; i++) {
291294 if (value < table[i])
292295 break;
....@@ -2101,6 +2104,8 @@
21012104 FINISH_CHRG_CUR2 : FINISH_CHRG_CUR1;
21022105 finish_sec = base2sec(di->finish_base);
21032106 soc_sec = di->fcc * 3600 / 100 / DIV(finish_current);
2107
+ if (soc_sec == 0)
2108
+ soc_sec = 1;
21042109 plus_soc = finish_sec / DIV(soc_sec);
21052110 if (finish_sec > soc_sec) {
21062111 rest = finish_sec % soc_sec;
....@@ -3240,7 +3245,7 @@
32403245 }
32413246
32423247 pdata->ocv_size = length / sizeof(u32);
3243
- if (pdata->ocv_size <= 0) {
3248
+ if (pdata->ocv_size < 2) {
32443249 dev_err(dev, "invalid ocv table\n");
32453250 return -EINVAL;
32463251 }