x86: replace percpu_xxx funcs with this_cpu_xxx
Since percpu_xxx() serial functions are duplicated with this_cpu_xxx(). Removing percpu_xxx() definition and replacing them by this_cpu_xxx() in code. There is no function change in this patch, just preparation for later percpu_xxx serial function removing. On x86 machine the this_cpu_xxx() serial functions are same as __this_cpu_xxx() without no unnecessary premmpt enable/disable. Thanks for Stephen Rothwell, he found and fixed a i386 build error in the patch. Also thanks for Andrew Morton, he kept updating the patchset in Linus' tree. Signed-off-by: Alex Shi <alex.shi@intel.com> Acked-by: Christoph Lameter <cl@gentwo.org> Acked-by: Tejun Heo <tj@kernel.org> Acked-by: "H. Peter Anvin" <hpa@zytor.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
@@ -46,7 +46,7 @@
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
#define __percpu_prefix "%%"__stringify(__percpu_seg)":"
|
||||
#define __my_cpu_offset percpu_read(this_cpu_off)
|
||||
#define __my_cpu_offset this_cpu_read(this_cpu_off)
|
||||
|
||||
/*
|
||||
* Compared to the generic __my_cpu_offset version, the following
|
||||
@@ -352,15 +352,15 @@ do { \
|
||||
|
||||
/*
|
||||
* percpu_read() makes gcc load the percpu variable every time it is
|
||||
* accessed while percpu_read_stable() allows the value to be cached.
|
||||
* percpu_read_stable() is more efficient and can be used if its value
|
||||
* accessed while this_cpu_read_stable() allows the value to be cached.
|
||||
* this_cpu_read_stable() is more efficient and can be used if its value
|
||||
* is guaranteed to be valid across cpus. The current users include
|
||||
* get_current() and get_thread_info() both of which are actually
|
||||
* per-thread variables implemented as per-cpu variables and thus
|
||||
* stable for the duration of the respective task.
|
||||
*/
|
||||
#define percpu_read(var) percpu_from_op("mov", var, "m" (var))
|
||||
#define percpu_read_stable(var) percpu_from_op("mov", var, "p" (&(var)))
|
||||
#define this_cpu_read_stable(var) percpu_from_op("mov", var, "p" (&(var)))
|
||||
#define percpu_write(var, val) percpu_to_op("mov", var, val)
|
||||
#define percpu_add(var, val) percpu_add_op(var, val)
|
||||
#define percpu_sub(var, val) percpu_add_op(var, -(val))
|
||||
|
Reference in New Issue
Block a user