diff options
author | Vegard Nossum <vegard.nossum@gmail.com> | 2008-09-14 19:03:53 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-13 10:21:12 +0200 |
commit | 33f8c40a30ae99e971d068c9ec6088e713c46f5f (patch) | |
tree | fa824ccaf601c7ac388dbd5f5caa03c96c8bba26 /include/asm-x86 | |
parent | 3e6de5a393661c5cdabe44115e93bcbde6a742fc (diff) | |
download | blackbird-op-linux-33f8c40a30ae99e971d068c9ec6088e713c46f5f.tar.gz blackbird-op-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.h | 5 |
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) /* |