Re: [PATCH v1 07/17] thermal/hwmon: Use the thermal API instead tampering the internals

From: Guenter Roeck
Date: Mon Feb 20 2023 - 09:13:00 EST


On Mon, Feb 20, 2023 at 02:34:08PM +0100, Daniel Lezcano wrote:
> Hi Guenter,
>
> my script should have Cc'ed you but it didn't, so just a heads up this patch
> ;)
>
> On 19/02/2023 15:36, Daniel Lezcano wrote:
> > In this function, there is a guarantee the thermal zone is registered.
> >
> > The sysfs hwmon unregistering will be blocked until we exit the
> > function. The thermal zone is unregistered after the sysfs hwmon is
> > unregistered.
> >
> > When we are in this function, the thermal zone is registered.
> >
> > We can call the thermal_zone_get_crit_temp() function safely and let
> > the function use the lock which is private the thermal core code.
> >

Hmm, if you say so. That very same call used to cause a crash in
Chromebooks, which is why I had added the locking.

Guenter

> > Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
> > ---
> > drivers/thermal/thermal_hwmon.c | 10 +---------
> > 1 file changed, 1 insertion(+), 9 deletions(-)
> >
> > diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
> > index bc02095b314c..15158715b967 100644
> > --- a/drivers/thermal/thermal_hwmon.c
> > +++ b/drivers/thermal/thermal_hwmon.c
> > @@ -77,15 +77,7 @@ temp_crit_show(struct device *dev, struct device_attribute *attr, char *buf)
> > int temperature;
> > int ret;
> > - mutex_lock(&tz->lock);
> > -
> > - if (device_is_registered(&tz->device))
> > - ret = tz->ops->get_crit_temp(tz, &temperature);
> > - else
> > - ret = -ENODEV;
> > -
> > - mutex_unlock(&tz->lock);
> > -
> > + ret = thermal_zone_get_crit_temp(tz, &temperature);
> > if (ret)
> > return ret;
>
> --
> <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
>
> Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
> <http://twitter.com/#!/linaroorg> Twitter |
> <http://www.linaro.org/linaro-blog/> Blog
>