Commit f081a529 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] cpufreq: speedstep-smi asm fix

Fix bug identified by Linus Torvalds <torvalds@osdl.org>: the `out'
instruction depends upon the state of memory_data[], so we need to tell gcc
that before executing it. (The opcode, not gcc).

Fixes http://bugzilla.kernel.org/show_bug.cgi?id=5553

Thanks to Antonio Ospite <ospite@studenti.unina.it> for testing.

Cc: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 1e8c5739
...@@ -75,7 +75,9 @@ static int speedstep_smi_ownership (void) ...@@ -75,7 +75,9 @@ static int speedstep_smi_ownership (void)
__asm__ __volatile__( __asm__ __volatile__(
"out %%al, (%%dx)\n" "out %%al, (%%dx)\n"
: "=D" (result) : "=D" (result)
: "a" (command), "b" (function), "c" (0), "d" (smi_port), "D" (0), "S" (magic) : "a" (command), "b" (function), "c" (0), "d" (smi_port),
"D" (0), "S" (magic)
: "memory"
); );
dprintk("result is %x\n", result); dprintk("result is %x\n", result);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment