1. 28 Jul, 2010 3 commits
    • H. Peter Anvin's avatar
      x86, asm: Clean up and simplify set_64bit() · 69309a05
      H. Peter Anvin authored
      Clean up and simplify set_64bit().  This code is quite old (1.3.11)
      and contains a fair bit of auxilliary machinery that current versions
      of gcc handle just fine automatically.  Worse, the auxilliary
      machinery can actually cause an unnecessary spill to memory.
      
      Furthermore, the loading of the old value inside the loop in the
      32-bit case is unnecessary: if the value doesn't match, the CMPXCHG8B
      instruction will already have loaded the "new previous" value for us.
      
      Clean up the comment, too, and remove page references to obsolete
      versions of the Intel SDM.
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      LKML-Reference: <tip-*@vger.kernel.org>
      69309a05
    • H. Peter Anvin's avatar
      d3608b56
    • H. Peter Anvin's avatar
      x86: Add memory modify constraints to xchg() and cmpxchg() · 113fc5a6
      H. Peter Anvin authored
      xchg() and cmpxchg() modify their memory operands, not merely read
      them.  For some versions of gcc the "memory" clobber has apparently
      dealt with the situation, but not for all.
      Originally-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      Cc: Glauber Costa <glommer@redhat.com>
      Cc: Avi Kivity <avi@redhat.com>
      Cc: Peter Palfrader <peter@palfrader.org>
      Cc: Greg KH <gregkh@suse.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Zachary Amsden <zamsden@redhat.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: <stable@kernel.org>
      LKML-Reference: <4C4F7277.8050306@zytor.com>
      113fc5a6
  2. 27 Jul, 2010 10 commits
  3. 26 Jul, 2010 27 commits