Re: [PATCH] cpufreq: intel_pstate: fix possible integer overflow

From: Rafael J. Wysocki
Date: Mon Oct 21 2013 - 18:35:31 EST


On Monday, October 21, 2013 08:56:22 AM Dirk Brandewie wrote:
> On 10/19/2013 08:31 PM, Geyslan G. Bem wrote:
> > The expression 'pstate << 8' is evaluated using 32-bit arithmetic while
> > 'val' expects an expression of type u64.
> >
> > Signed-off-by: Geyslan G. Bem <geyslan@xxxxxxxxx>
> Acked-by: Dirk Brandewie <dirk.j.brandewie@xxxxxxxxx>

Actually, isn't (pstate << 8) guaranteed not to overflow?

> > ---
> > drivers/cpufreq/intel_pstate.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> > index badf620..43446b5 100644
> > --- a/drivers/cpufreq/intel_pstate.c
> > +++ b/drivers/cpufreq/intel_pstate.c
> > @@ -395,7 +395,7 @@ static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate)
> > trace_cpu_frequency(pstate * 100000, cpu->cpu);
> >
> > cpu->pstate.current_pstate = pstate;
> > - val = pstate << 8;
> > + val = (u64)pstate << 8;
> > if (limits.no_turbo)
> > val |= (u64)1 << 32;
> >
> >
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/