]> rtime.felk.cvut.cz Git - linux-imx.git/commit
x86, asm: Clean up and simplify set_64bit()
authorH. Peter Anvin <hpa@zytor.com>
Wed, 28 Jul 2010 06:29:52 +0000 (23:29 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 26 Aug 2010 23:45:57 +0000 (16:45 -0700)
commit1f0a86afdf7fc4782c6d3bbd30f21cbce9b5b6f9
tree5fed4c9ad9370f8f43bfae4fcc3bd7974322e0f6
parent6bed99917d414371cd5342158b6ed514ee8fee45
x86, asm: Clean up and simplify set_64bit()

commit 69309a05907546fb686b251d4ab041c26afe1e1d upstream.

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: H. Peter Anvin <hpa@zytor.com>
LKML-Reference: <tip-*@vger.kernel.org>
Tested-by: Mark Stanovich <mrktimber@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/include/asm/cmpxchg_32.h
arch/x86/include/asm/cmpxchg_64.h