regulator: da9121: Potential Oops in da9121_assign_chip_model()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 7 Dec 2020 17:55:44 +0000 (20:55 +0300)
committerMark Brown <broonie@kernel.org>
Tue, 8 Dec 2020 14:21:13 +0000 (14:21 +0000)
There is a missing "return ret;" on this error path so we call
"da9121_check_device_type(i2c, chip);" which will end up dereferencing
"chip->regmap" and lead to an Oops.

Fixes: c860476b9e3a ("regulator: da9121: Add device variant regmaps")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Adam Ward <Adam.Ward.opensource@diasemi.com>
Link: https://lore.kernel.org/r/X85soGKnWAjPUA7a@mwanda
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/da9121-regulator.c

index db1c2cc838bc97b1ede96435d51eb45dc5e06f16..e4fc3a7cd5d8acdb40bbca36c4d48441ddded710 100644 (file)
@@ -915,6 +915,7 @@ static int da9121_assign_chip_model(struct i2c_client *i2c,
                ret = PTR_ERR(chip->regmap);
                dev_err(chip->dev, "Failed to configure a register map: %d\n",
                        ret);
+               return ret;
        }
 
        ret = da9121_check_device_type(i2c, chip);