On Wed, 2013-01-02 at 17:29 +0200, Eduardo Valentin wrote: > This patch adds an extra check in the data structure while registering > a thermal device. The check is to avoid registering zones with a number > of trips greater than zero, but with no .get_trip_temp nor .get_trip_type > callbacks. Receiving such data structure may end in wrong data access. > > Signed-off-by: Eduardo Valentin <eduardo.valentin@xxxxxx> > --- > drivers/thermal/thermal_sys.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c > index fba27c3..0a1bf6b 100644 > --- a/drivers/thermal/thermal_sys.c > +++ b/drivers/thermal/thermal_sys.c > @@ -1530,6 +1530,9 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type, > if (!ops || !ops->get_temp) > return ERR_PTR(-EINVAL); > > + if (trips > 0 && !ops->get_trip_type) > + return ERR_PTR(-EINVAL); > + Hmmm, I do not think we need this. the sysfs I/F trip_point_X_type already does this check. thanks, rui