]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/thermal/qcom/tsens-v0_1.c
Merge tag 'devicetree-fixes-for-5.4-2' of git://git.kernel.org/pub/scm/linux/kernel...
[linux.git] / drivers / thermal / qcom / tsens-v0_1.c
index 6f26fadf4c27918606e7b93f1be557c98b89ec7d..055647bcee67d33387414276bd8be385e582f20f 100644 (file)
@@ -145,8 +145,10 @@ static int calibrate_8916(struct tsens_priv *priv)
                return PTR_ERR(qfprom_cdata);
 
        qfprom_csel = (u32 *)qfprom_read(priv->dev, "calib_sel");
-       if (IS_ERR(qfprom_csel))
+       if (IS_ERR(qfprom_csel)) {
+               kfree(qfprom_cdata);
                return PTR_ERR(qfprom_csel);
+       }
 
        mode = (qfprom_csel[0] & MSM8916_CAL_SEL_MASK) >> MSM8916_CAL_SEL_SHIFT;
        dev_dbg(priv->dev, "calibration mode is %d\n", mode);
@@ -181,6 +183,8 @@ static int calibrate_8916(struct tsens_priv *priv)
        }
 
        compute_intercept_slope(priv, p1, p2, mode);
+       kfree(qfprom_cdata);
+       kfree(qfprom_csel);
 
        return 0;
 }
@@ -198,8 +202,10 @@ static int calibrate_8974(struct tsens_priv *priv)
                return PTR_ERR(calib);
 
        bkp = (u32 *)qfprom_read(priv->dev, "calib_backup");
-       if (IS_ERR(bkp))
+       if (IS_ERR(bkp)) {
+               kfree(calib);
                return PTR_ERR(bkp);
+       }
 
        calib_redun_sel =  bkp[1] & BKP_REDUN_SEL;
        calib_redun_sel >>= BKP_REDUN_SHIFT;
@@ -313,6 +319,8 @@ static int calibrate_8974(struct tsens_priv *priv)
        }
 
        compute_intercept_slope(priv, p1, p2, mode);
+       kfree(calib);
+       kfree(bkp);
 
        return 0;
 }