percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support
authorChristoph Lameter <cl@linux.com>
Sat, 18 Dec 2010 14:54:04 +0000 (15:54 +0100)
committerTejun Heo <tj@kernel.org>
Sat, 18 Dec 2010 14:54:04 +0000 (15:54 +0100)
commit2b7124428561c7c3cfa4a58cc4c6feea53f3148e
tree3d8ceae0abd1ec410aeaa29f3d793e54be267e8a
parent403047754cf690b012369b8fb563b738b88086e6
percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support

Generic code to provide new per cpu atomic features

this_cpu_cmpxchg
this_cpu_xchg

Fallback occurs to functions using interrupts disable/enable
to ensure correct per cpu atomicity.

Fallback to regular cmpxchg and xchg is not possible since per cpu atomic
semantics include the guarantee that the current cpus per cpu data is
accessed atomically. Use of regular cmpxchg and xchg requires the
determination of the address of the per cpu data before regular cmpxchg
or xchg which therefore cannot be atomically included in an xchg or
cmpxchg without segment override.

tj: - Relocated new ops to conform better to the general organization.
    - This patch contains a trivial comment fix.

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