percpu: Generic support for this_cpu_cmpxchg_double()
authorChristoph Lameter <cl@linux.com>
Mon, 28 Feb 2011 10:02:24 +0000 (11:02 +0100)
committerTejun Heo <tj@kernel.org>
Mon, 28 Feb 2011 10:20:03 +0000 (11:20 +0100)
commit7c3343392172ba98d9d90a83edcc4c2e80897009
tree7faca8ca7e3a986e925d47a715799f1fd9f0fd89
parent0f06c063628689de5eab5dfb3ce9c797a09db900
percpu: Generic support for this_cpu_cmpxchg_double()

Introduce this_cpu_cmpxchg_double().  this_cpu_cmpxchg_double() allows
the comparison between two consecutive words and replaces them if
there is a match.

bool this_cpu_cmpxchg_double(pcp1, pcp2,
old_word1, old_word2, new_word1, new_word2)

this_cpu_cmpxchg_double does not return the old value (difficult since
there are two words) but a boolean indicating if the operation was
successful.

The first percpu variable must be double word aligned!

-tj: Updated to return bool instead of int, converted size check to
     BUILD_BUG_ON() instead of VM_BUG_ON() and other cosmetic changes.

Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
include/linux/percpu.h