x86, cpufreq: fix Speedfreq-SMI call that clobbers ECX
authorStephan Diestelhorst <langer_mann@web.de>
Mon, 10 Mar 2008 15:05:41 +0000 (16:05 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 26 Mar 2008 21:23:40 +0000 (22:23 +0100)
commitc6e8256a7b15033bc5d7797e25c7e053040c4c7c
tree596ea5db734559345a0d389f374902ab5132e3cb
parent475613b9e374bf0c15340eb166a962da04aa02e8
x86, cpufreq: fix Speedfreq-SMI call that clobbers ECX

I have found that using SMI to change the cpu's frequency on my DELL
Latitude L400 clobbers the ECX register in speedstep_set_state, causing
unneccessary retries because the "state" variable has changed silently (GCC
assumes it is still present in ECX).

play safe and avoid gcc caching any register across IO port accesses
that trigger SMIs.

Signed-off by: <Stephan.Diestelhorst@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/cpufreq/speedstep-smi.c