Messages in this thread | | | Date | Wed, 30 Sep 2009 13:20:58 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: Linux 2.6.32-rc1 |
| |
On Wed, 30 Sep 2009, Eric Dumazet wrote: > > +#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))); \ > > probably a "memory" clobber is needed, alternative_io() doesnt provide it.
Yeah, good catch.
Linus
| |