power: pm8921-bms: fix warnings
'row1' and 'row2' might be used uninitialized in
interpolate_scalingfactor_pc.
There would be a memory leak in the probe function if battery
data is bad. Free the chip memory before returning.
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
diff --git a/drivers/power/pm8921-bms.c b/drivers/power/pm8921-bms.c
index 7ac2f42..ee22af3 100644
--- a/drivers/power/pm8921-bms.c
+++ b/drivers/power/pm8921-bms.c
@@ -414,7 +414,9 @@
static int interpolate_scalingfactor_pc(struct pm8921_bms_chip *chip,
int cycles, int pc)
{
- int i, scalefactorrow1, scalefactorrow2, scalefactor, row1, row2;
+ int i, scalefactorrow1, scalefactorrow2, scalefactor;
+ int row1 = 0;
+ int row2 = 0;
int rows = chip->pc_sf_lut->rows;
int cols = chip->pc_sf_lut->cols;
@@ -1500,7 +1502,7 @@
rc = set_battery_data(chip);
if (rc) {
pr_err("%s bad battery data %d\n", __func__, rc);
- return rc;
+ goto free_chip;
}
chip->batt_temp_channel = pdata->bms_cdata.batt_temp_channel;