Re: [PATCH] thermal: core: don't call unsupported trip on thermal_tripped_notify()

From: Kuninori Morimoto
Date: Wed Jan 20 2016 - 02:25:17 EST



Hi Geert

> > From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
> >
> > It needs to check maximum trip size before using it.
> > Otherwise, each driver might be called with unsupported trip.
> >
> > Reported-by: Magnus Damm <magnus.damm@xxxxxxxxx>
> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
> > ---
> > drivers/thermal/thermal_core.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> > index 7f7a3ca..9761f49 100644
> > --- a/drivers/thermal/thermal_core.c
> > +++ b/drivers/thermal/thermal_core.c
> > @@ -461,6 +461,9 @@ static void thermal_tripped_notify(struct thermal_zone_device *tz,
> > kobject_uevent_env(&tz->device.kobj, KOBJ_CHANGE, msg);
> > }
> >
> > + if (tz->trips <= trip + 1)
> > + goto unlock;
> > +
>
> Thanks, I assume this will fix the "rcar_thermal e61f0000.thermal: rcar
> driver trip error" messages.
>
> However, I don't know if it's the right fix, cfr. my unanswered question at
> https://lkml.org/lkml/2016/1/5/107
>
> > ret = tz->ops->get_trip_temp(tz, trip + 1, &upper_trip_temp);
> > if (ret)
> > goto unlock;

Yes. we have 2 solutions.
1) use this patch
2) dev_warn() -> dev_dbg()
But my opinion is that using trip with +1 without checking supported size
is strange :)