summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndi Kleen <ak@muc.de>2003-04-30 04:13:50 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-04-30 04:13:50 -0700
commit700a4acbd9b6c0d22ab17d248cd22e70b8268bfb (patch)
tree0b54e91506532e6e74e1df715db138d73be79388 /include
parentfb346e7bf88ec59e6da20fe6a7813e650b19d1d7 (diff)
[PATCH] Fix prefetch patching in 2.5-bk
Brown paperbag time. I forgot to take the modrm byte in account with the prefetch patch replacement. With 3.2 it worked because it used the right registers in my configuration. But gcc 2.96 uses a different register in __dpath and the prefetch becomes 4 bytes with modrm and the original nop needs to be as long as that too.
Diffstat (limited to 'include')
-rw-r--r--include/asm-i386/processor.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/asm-i386/processor.h b/include/asm-i386/processor.h
index d69cc46d5866..6bbb21e6e205 100644
--- a/include/asm-i386/processor.h
+++ b/include/asm-i386/processor.h
@@ -564,7 +564,7 @@ static inline void rep_nop(void)
#define ARCH_HAS_PREFETCH
extern inline void prefetch(const void *x)
{
- alternative_input(ASM_NOP3,
+ alternative_input(ASM_NOP4,
"prefetchnta (%1)",
X86_FEATURE_XMM,
"r" (x));
@@ -578,7 +578,7 @@ extern inline void prefetch(const void *x)
spinlocks to avoid one state transition in the cache coherency protocol. */
extern inline void prefetchw(const void *x)
{
- alternative_input(ASM_NOP3,
+ alternative_input(ASM_NOP4,
"prefetchw (%1)",
X86_FEATURE_3DNOW,
"r" (x));