On Mon, Nov 05, 2018 at 05:32:34PM +0800, Wei Ni wrote: > Fix dereference dev before null check. > > Signed-off-by: Wei Ni <wni@xxxxxxxxxx> > --- > drivers/thermal/tegra/soctherm.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/thermal/tegra/soctherm.c b/drivers/thermal/tegra/soctherm.c > index 3042837364e8..96527df91f2a 100644 > --- a/drivers/thermal/tegra/soctherm.c > +++ b/drivers/thermal/tegra/soctherm.c > @@ -397,7 +397,7 @@ static int throttrip_program(struct device *dev, > struct soctherm_throt_cfg *stc, > int trip_temp) > { > - struct tegra_soctherm *ts = dev_get_drvdata(dev); > + struct tegra_soctherm *ts; > int temp, cpu_throt, gpu_throt; > unsigned int throt; > u32 r, reg_off; > @@ -405,6 +405,8 @@ static int throttrip_program(struct device *dev, > if (!sg || !stc || !stc->init) > return -EINVAL; > > + ts = dev_get_drvdata(dev); I think coverity is wrong. How is dev ever going to be NULL in this case? We allocate all of these struct tegra_thermctl_zone structures in tegra_soctherm_probe() and assign zone->dev = &pdev->dev, which can never be NULL. And even if it could, the code would've crashed earlier in tegra_soctherm_probe() already. Furthermore, I fail to see how your patch would fix the defect. None of the checks in the conditional above actually check the dev value. Thierry
Attachment:
signature.asc
Description: PGP signature