]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
regulator: max14577: Add error check for max14577_read_reg()
authorWentao Liang <vulab@iscas.ac.cn>
Mon, 26 May 2025 02:56:27 +0000 (10:56 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Jun 2025 10:04:14 +0000 (11:04 +0100)
commit 65271f868cb1dca709ff69e45939bbef8d6d0b70 upstream.

The function max14577_reg_get_current_limit() calls the function
max14577_read_reg(), but does not check its return value. A proper
implementation can be found in max14577_get_online().

Add a error check for the max14577_read_reg() and return error code
if the function fails.

Fixes: b0902bbeb768 ("regulator: max14577: Add regulator driver for Maxim 14577")
Cc: stable@vger.kernel.org # v3.14
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Link: https://patch.msgid.link/20250526025627.407-1-vulab@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/regulator/max14577-regulator.c

index e34face736f4876a2695ee610c810f7514cb4511..091a55819fc154be459bb2fbd6177457c5c98a09 100644 (file)
@@ -40,11 +40,14 @@ static int max14577_reg_get_current_limit(struct regulator_dev *rdev)
        struct max14577 *max14577 = rdev_get_drvdata(rdev);
        const struct maxim_charger_current *limits =
                &maxim_charger_currents[max14577->dev_type];
+       int ret;
 
        if (rdev_get_id(rdev) != MAX14577_CHARGER)
                return -EINVAL;
 
-       max14577_read_reg(rmap, MAX14577_CHG_REG_CHG_CTRL4, &reg_data);
+       ret = max14577_read_reg(rmap, MAX14577_CHG_REG_CHG_CTRL4, &reg_data);
+       if (ret < 0)
+               return ret;
 
        if ((reg_data & CHGCTRL4_MBCICHWRCL_MASK) == 0)
                return limits->min;