RE: [PATCH] regulator: da9121: Potential Oops in da9121_assign_chip_model()
From: Adam Ward
Date: Tue Dec 08 2020 - 04:54:25 EST
Acked-by: Adam Ward <Adam.Ward.opensource@xxxxxxxxxxx>
> -----Original Message-----
> From: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Sent: 07 December 2020 17:56
> To: Support Opensource <Support.Opensource@xxxxxxxxxxx>; Adam Ward
> <Adam.Ward.opensource@xxxxxxxxxxx>
> Cc: Liam Girdwood <lgirdwood@xxxxxxxxx>; Mark Brown
> <broonie@xxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; kernel-
> janitors@xxxxxxxxxxxxxxx
> Subject: [PATCH] regulator: da9121: Potential Oops in
> da9121_assign_chip_model()
>
> 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@xxxxxxxxxx>
> ---
> drivers/regulator/da9121-regulator.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/regulator/da9121-regulator.c b/drivers/regulator/da9121-
> regulator.c
> index db1c2cc838bc..e4fc3a7cd5d8 100644
> --- a/drivers/regulator/da9121-regulator.c
> +++ b/drivers/regulator/da9121-regulator.c
> @@ -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);
> --
> 2.29.2