Message ID | 20190620142228.11773-1-jeffrey.l.hugo@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | b01d18232587881ae813d4a1d14c8d9a2ac36b15 |
Headers | show |
Series | regulator: qcom_spmi: Do NULL check for lvs | expand |
On Thu 20 Jun 07:22 PDT 2019, Jeffrey Hugo wrote: > Low-voltage switches (lvs) don't have set_points since the voltage ranges > of the output are really controlled by the inputs. This is a problem for > the newly added linear range support in the probe(), as that will cause > a null pointer dereference error on older platforms like msm8974 which > happen to need to control some of the implemented lvs. > > Fix this by adding the appropriate null check. > Thanks Jeff, this resolves the regression I've seen the last couple of days on linux-next. Tested-by: Bjorn Andersson <bjorn.andersson@linaro.org> Regards, Bjorn > Fixes: 86f4ff7a0c0c ("regulator: qcom_spmi: enable linear range info") > Reported-by: Bjorn Andersson <bjorn.andersson@linaro.org> > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > --- > drivers/regulator/qcom_spmi-regulator.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/regulator/qcom_spmi-regulator.c b/drivers/regulator/qcom_spmi-regulator.c > index 877df33e0246..7f51c5fc8194 100644 > --- a/drivers/regulator/qcom_spmi-regulator.c > +++ b/drivers/regulator/qcom_spmi-regulator.c > @@ -2045,7 +2045,7 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev) > } > } > > - if (vreg->set_points->count == 1) { > + if (vreg->set_points && vreg->set_points->count == 1) { > /* since there is only one range */ > range = vreg->set_points->range; > vreg->desc.uV_step = range->step_uV; > -- > 2.17.1 >
diff --git a/drivers/regulator/qcom_spmi-regulator.c b/drivers/regulator/qcom_spmi-regulator.c index 877df33e0246..7f51c5fc8194 100644 --- a/drivers/regulator/qcom_spmi-regulator.c +++ b/drivers/regulator/qcom_spmi-regulator.c @@ -2045,7 +2045,7 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev) } } - if (vreg->set_points->count == 1) { + if (vreg->set_points && vreg->set_points->count == 1) { /* since there is only one range */ range = vreg->set_points->range; vreg->desc.uV_step = range->step_uV;
Low-voltage switches (lvs) don't have set_points since the voltage ranges of the output are really controlled by the inputs. This is a problem for the newly added linear range support in the probe(), as that will cause a null pointer dereference error on older platforms like msm8974 which happen to need to control some of the implemented lvs. Fix this by adding the appropriate null check. Fixes: 86f4ff7a0c0c ("regulator: qcom_spmi: enable linear range info") Reported-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> --- drivers/regulator/qcom_spmi-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)