Re: [GIT PULL] scheduler fixes

Eric Dumazet
2009-10-01T06:19:23Z

Ingo Molnar a écrit :
>
> That's not enough - the inline assembly code in
> arch/x86/include/asm/cmpxchg_32.h should also not reference
> cmpxchg8b_emu in that case.
>

I believe it is OK as is, since cmpxchg8b_emu is referenced only
once, in a section guarded by :
#ifndef CONFIG_X86_CMPXCHG64

(But I'll re-check in a couple of hours)

extract from arch/x86/include/asm/cmpxchg_32.h :

#ifndef CONFIG_X86_CMPXCHG64

#define cmpxchg64(ptr, o, n) \
({ \
__typeof__(*(ptr)) __ret; \
__typeof__(*(ptr)) __old = (o); \
__typeof__(*(ptr)) __new = (n); \
alternative_io("call cmpxchg8b_emu", \
"lock; cmpxchg8b (%%esi)" , \
X86_FEATURE_CX8, \
"=A" (__ret), \
"S" ((ptr)), "0" (__old), \
"b" ((unsigned int)__new), \
"c" ((unsigned int)(__new>>32)) \
: "memory"); \
__ret; })