]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
add another patch to 2.6.16 queue
authorGreg Kroah-Hartman <gregkh@suse.de>
Sat, 25 Mar 2006 06:45:35 +0000 (22:45 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 25 Mar 2006 06:45:35 +0000 (22:45 -0800)
queue-2.6.16/fix-speedstep-smi-assembly-bug-in-speedstep_smi_ownership.patch [new file with mode: 0644]
queue-2.6.16/series

diff --git a/queue-2.6.16/fix-speedstep-smi-assembly-bug-in-speedstep_smi_ownership.patch b/queue-2.6.16/fix-speedstep-smi-assembly-bug-in-speedstep_smi_ownership.patch
new file mode 100644 (file)
index 0000000..e95aa3f
--- /dev/null
@@ -0,0 +1,39 @@
+From akpm@osdl.org Fri Mar 24 19:44:12 2006
+Date: Fri, 24 Mar 2006 19:40:37 -0800
+From: Andrew Morton <akpm@osdl.org>
+To: Greg KH <greg@kroah.com>
+Cc: chrisw@sous-sol.org, stable@kernel.org
+Subject: Fix speedstep-smi assembly bug in speedstep_smi_ownership
+Message-Id: <20060324194037.3a7495b7.akpm@osdl.org>
+
+From: Andrew Morton <akpm@osdl.org>
+
+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: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+
+ arch/i386/kernel/cpu/cpufreq/speedstep-smi.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- linux-2.6.16.orig/arch/i386/kernel/cpu/cpufreq/speedstep-smi.c
++++ linux-2.6.16/arch/i386/kernel/cpu/cpufreq/speedstep-smi.c
+@@ -75,7 +75,9 @@ static int speedstep_smi_ownership (void
+       __asm__ __volatile__(
+               "out %%al, (%%dx)\n"
+               : "=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);
index 846b86d297b6cd9de41ec4435cc009870345735d..ed17aedd93f3b66fb7df7b2273717c952f8f0560 100644 (file)
@@ -18,3 +18,4 @@ fix-scheduler-deadlock.patch
 dm-fix-bug-bio_rw_barrier-requests-to-md-raid1-hang.patch
 cciss-fix-use-after-free-in-cciss_init_one.patch
 dmi-fix-dmi-onboard-device-discovery.patch
+fix-speedstep-smi-assembly-bug-in-speedstep_smi_ownership.patch