aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/alternative.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2007-09-06 10:59:52 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-09-10 21:57:47 -0400
commita534b679180025aa324ebd63c05516e478551cfd (patch)
treef89dc89909bcd9f67dc10da44314e75753785df8 /arch/i386/kernel/alternative.c
parent23d5ea5d3edcfe899cd91fca87a4af799bcc5794 (diff)
x86_64: Remove CLFLUSH in text_poke()
The CLFLUSH for the modified code line in text_poke was supposed to speed up CPU recovery. Unfortunately it seems to cause hangs on some VIA C3s (at least on VIA Esther Model 10 Stepping 9) Remove it. Thanks to Stefan Becker for reporting/testing. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/i386/kernel/alternative.c')
-rw-r--r--arch/i386/kernel/alternative.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c
index 9f4ac8b02de4..bd72d94e713e 100644
--- a/arch/i386/kernel/alternative.c
+++ b/arch/i386/kernel/alternative.c
@@ -445,8 +445,6 @@ void __kprobes text_poke(void *addr, unsigned char *opcode, int len)
445{ 445{
446 memcpy(addr, opcode, len); 446 memcpy(addr, opcode, len);
447 sync_core(); 447 sync_core();
448 /* Not strictly needed, but can speed CPU recovery up. Ignore cross cacheline 448 /* Could also do a CLFLUSH here to speed up CPU recovery; but
449 case. */ 449 that causes hangs on some VIA CPUs. */
450 if (cpu_has_clflush)
451 asm("clflush (%0) " :: "r" (addr) : "memory");
452} 450}