Message ID | 20221010150311.40384-1-jonathanh@nvidia.com |
---|---|
State | Accepted |
Headers | show |
Series | thermal/drivers/tegra: Fix crash when getting critical temp | expand |
Hi Rafael, On 10/10/2022 16:03, Jon Hunter wrote: > Commit 13bea86623be ("thermal/of: Remove of_thermal_get_crit_temp()") > removed the function of_thermal_get_crit_temp() and this is causing a > NULL pointer deference crash when attempting to call the 'get_crit_temp' > function pointer because this function pointer is no longer initialised. > Fix this by replacing the call to the 'get_crit_temp' function pointer > with a call to the function thermal_zone_get_crit_temp() instead. > > Fixes: 13bea86623be ("thermal/of: Remove of_thermal_get_crit_temp()") > Signed-off-by: Jon Hunter <jonathanh@nvidia.com> > --- > drivers/thermal/tegra/soctherm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/thermal/tegra/soctherm.c b/drivers/thermal/tegra/soctherm.c > index d2e454902689..4203e74e2f79 100644 > --- a/drivers/thermal/tegra/soctherm.c > +++ b/drivers/thermal/tegra/soctherm.c > @@ -742,7 +742,7 @@ static int tegra_soctherm_set_hwtrips(struct device *dev, > /* Get thermtrips. If missing, try to get critical trips. */ > temperature = tsensor_group_thermtrip_get(ts, sg->id); > if (min_low_temp == temperature) > - if (tz->ops->get_crit_temp(tz, &temperature)) > + if (thermal_zone_get_crit_temp(tz, &temperature)) > temperature = max_high_temp; > > ret = thermtrip_program(dev, sg, temperature); Any feedback on this? OK to take this fix? Thanks Jon
On 21/10/2022 11:49, Jon Hunter wrote: > Hi Rafael, > > On 10/10/2022 16:03, Jon Hunter wrote: >> Commit 13bea86623be ("thermal/of: Remove of_thermal_get_crit_temp()") >> removed the function of_thermal_get_crit_temp() and this is causing a >> NULL pointer deference crash when attempting to call the 'get_crit_temp' >> function pointer because this function pointer is no longer initialised. >> Fix this by replacing the call to the 'get_crit_temp' function pointer >> with a call to the function thermal_zone_get_crit_temp() instead. >> >> Fixes: 13bea86623be ("thermal/of: Remove of_thermal_get_crit_temp()") >> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> >> --- >> drivers/thermal/tegra/soctherm.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/thermal/tegra/soctherm.c >> b/drivers/thermal/tegra/soctherm.c >> index d2e454902689..4203e74e2f79 100644 >> --- a/drivers/thermal/tegra/soctherm.c >> +++ b/drivers/thermal/tegra/soctherm.c >> @@ -742,7 +742,7 @@ static int tegra_soctherm_set_hwtrips(struct >> device *dev, >> /* Get thermtrips. If missing, try to get critical trips. */ >> temperature = tsensor_group_thermtrip_get(ts, sg->id); >> if (min_low_temp == temperature) >> - if (tz->ops->get_crit_temp(tz, &temperature)) >> + if (thermal_zone_get_crit_temp(tz, &temperature)) >> temperature = max_high_temp; >> ret = thermtrip_program(dev, sg, temperature); > I'll take it
On 10/10/2022 17:03, Jon Hunter wrote: > Commit 13bea86623be ("thermal/of: Remove of_thermal_get_crit_temp()") > removed the function of_thermal_get_crit_temp() and this is causing a > NULL pointer deference crash when attempting to call the 'get_crit_temp' > function pointer because this function pointer is no longer initialised. > Fix this by replacing the call to the 'get_crit_temp' function pointer > with a call to the function thermal_zone_get_crit_temp() instead. > > Fixes: 13bea86623be ("thermal/of: Remove of_thermal_get_crit_temp()") > Signed-off-by: Jon Hunter <jonathanh@nvidia.com> > --- Applied, thanks
diff --git a/drivers/thermal/tegra/soctherm.c b/drivers/thermal/tegra/soctherm.c index d2e454902689..4203e74e2f79 100644 --- a/drivers/thermal/tegra/soctherm.c +++ b/drivers/thermal/tegra/soctherm.c @@ -742,7 +742,7 @@ static int tegra_soctherm_set_hwtrips(struct device *dev, /* Get thermtrips. If missing, try to get critical trips. */ temperature = tsensor_group_thermtrip_get(ts, sg->id); if (min_low_temp == temperature) - if (tz->ops->get_crit_temp(tz, &temperature)) + if (thermal_zone_get_crit_temp(tz, &temperature)) temperature = max_high_temp; ret = thermtrip_program(dev, sg, temperature);
Commit 13bea86623be ("thermal/of: Remove of_thermal_get_crit_temp()") removed the function of_thermal_get_crit_temp() and this is causing a NULL pointer deference crash when attempting to call the 'get_crit_temp' function pointer because this function pointer is no longer initialised. Fix this by replacing the call to the 'get_crit_temp' function pointer with a call to the function thermal_zone_get_crit_temp() instead. Fixes: 13bea86623be ("thermal/of: Remove of_thermal_get_crit_temp()") Signed-off-by: Jon Hunter <jonathanh@nvidia.com> --- drivers/thermal/tegra/soctherm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)