summaryrefslogtreecommitdiffstats
path: root/include/asm-x86
diff options
context:
space:
mode:
authorVegard Nossum <vegard.nossum@gmail.com>2008-09-14 19:03:53 +0200
committerIngo Molnar <mingo@elte.hu>2008-10-13 10:21:12 +0200
commit33f8c40a30ae99e971d068c9ec6088e713c46f5f (patch)
treefa824ccaf601c7ac388dbd5f5caa03c96c8bba26 /include/asm-x86
parent3e6de5a393661c5cdabe44115e93bcbde6a742fc (diff)
downloadlinux-33f8c40a30ae99e971d068c9ec6088e713c46f5f.tar.gz
linux-33f8c40a30ae99e971d068c9ec6088e713c46f5f.tar.bz2
linux-33f8c40a30ae99e971d068c9ec6088e713c46f5f.zip
x86: add memory clobber in switch_to()
Segment registers are reloaded, so we should add a memory clobber. The generated assembly code is identical in my tests, but this doesn't mean it is necessarily true for all configurations/compilers. x86_64 already has the memory clobber. Signed-off-by: Vegard Nossum <vegard.nossum@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/asm-x86')
-rw-r--r--include/asm-x86/system.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/asm-x86/system.h b/include/asm-x86/system.h
index 34505dd7b24d..b20c894660f9 100644
--- a/include/asm-x86/system.h
+++ b/include/asm-x86/system.h
@@ -64,7 +64,10 @@ do { \
\
/* regparm parameters for __switch_to(): */ \
[prev] "a" (prev), \
- [next] "d" (next)); \
+ [next] "d" (next) \
+ \
+ : /* reloaded segment registers */ \
+ "memory"); \
} while (0)
/*