Andy, On 07-05-2013 10:21, Andy Shevchenko wrote: > Setting policy results in invalid value error. > % echo "step_wise" > policy > % echo: write error: Invalid argument > > Need clean up of the buffer which "echo" may add based on the arguments, before > comparing aganist list of governor names. > > Signed-off-by: Andy Shevchenko > Reported-by: Srinivas Pandruvada This one was close.. > --- > In v2: > - copy input string to a temporary buffer > drivers/thermal/thermal_core.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c > index d755440..e256380 100644 > --- a/drivers/thermal/thermal_core.c > +++ b/drivers/thermal/thermal_core.c > @@ -33,6 +33,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -713,10 +714,13 @@ policy_store(struct device *dev, struct device_attribute *attr, > int ret = -EINVAL; > struct thermal_zone_device *tz = to_thermal_zone(dev); > struct thermal_governor *gov; > + char *name[THERMAL_NAME_LENGTH]; I really believe you meant: + char name[THERMAL_NAME_LENGTH]; > + > + snprintf(name, sizeof(name), "%s", buf); > Still there are compilation warnings. > mutex_lock(&thermal_governor_lock); > > - gov = __find_governor(buf); > + gov = __find_governor(strim(name)); > if (!gov) > goto exit; > >