Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 8 Jan 2011 01:02:58 +0000 (17:02 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 8 Jan 2011 01:02:58 +0000 (17:02 -0800)
* 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)
  gameport: use this_cpu_read instead of lookup
  x86: udelay: Use this_cpu_read to avoid address calculation
  x86: Use this_cpu_inc_return for nmi counter
  x86: Replace uses of current_cpu_data with this_cpu ops
  x86: Use this_cpu_ops to optimize code
  vmstat: User per cpu atomics to avoid interrupt disable / enable
  irq_work: Use per cpu atomics instead of regular atomics
  cpuops: Use cmpxchg for xchg to avoid lock semantics
  x86: this_cpu_cmpxchg and this_cpu_xchg operations
  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support
  percpu,x86: relocate this_cpu_add_return() and friends
  connector: Use this_cpu operations
  xen: Use this_cpu_inc_return
  taskstats: Use this_cpu_ops
  random: Use this_cpu_inc_return
  fs: Use this_cpu_inc_return in buffer.c
  highmem: Use this_cpu_xx_return() operations
  vmstat: Use this_cpu_inc_return for vm statistics
  x86: Support for this_cpu_add, sub, dec, inc_return
  percpu: Generic support for this_cpu_add, sub, dec, inc_return
  ...

Fixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}
as per Tejun.

27 files changed:
1  2 
MAINTAINERS
arch/x86/kernel/apic/apic.c
arch/x86/kernel/apic/io_apic.c
arch/x86/kernel/apic/x2apic_uv_x.c
arch/x86/kernel/cpu/intel_cacheinfo.c
arch/x86/kernel/cpu/perf_event.c
arch/x86/kernel/cpu/perf_event_intel.c
arch/x86/kernel/ftrace.c
arch/x86/kernel/kprobes.c
arch/x86/kernel/process.c
arch/x86/kernel/smpboot.c
arch/x86/kernel/tsc.c
arch/x86/kvm/x86.c
arch/x86/oprofile/nmi_int.c
drivers/cpuidle/cpuidle.c
drivers/input/gameport/gameport.c
include/linux/kprobes.h
kernel/fork.c
kernel/hrtimer.c
kernel/kprobes.c
kernel/rcutree.c
kernel/softirq.c
kernel/taskstats.c
kernel/watchdog.c
mm/percpu.c
mm/slab.c
mm/vmstat.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
index 2a3f2a7db243f8b846ef5d3032287037d0111a69,26ec9a7c3518267b25d718b22af733ed2eef8b6c..ecca5f41ad2c8f00c5a88f113451e1a5ed480ed7
@@@ -120,8 -118,8 +120,8 @@@ static int __init uv_acpi_madt_oem_chec
                else if (!strcmp(oem_table_id, "UVX"))
                        uv_system_type = UV_X2APIC;
                else if (!strcmp(oem_table_id, "UVH")) {
-                       __get_cpu_var(x2apic_extra_bits) =
-                               pnodeid << uvh_apicid.s.pnode_shift;
+                       __this_cpu_write(x2apic_extra_bits,
 -                              nodeid << (uvh_apicid.s.pnode_shift - 1));
++                              pnodeid << uvh_apicid.s.pnode_shift);
                        uv_system_type = UV_NON_UNIQUE_APIC;
                        uv_set_apicid_hibit();
                        return 1;
Simple merge
Simple merge
Simple merge
Simple merge
index c852041bfc3d5b70e792dad0cfd42fdd467c3f38,dae1c0766d9a025dd79ae6398bd083f641e5ca75..09c08a1c706f0993a59475d8a7446c4cd2eecd93
@@@ -444,9 -444,8 +444,9 @@@ EXPORT_SYMBOL_GPL(cpu_idle_wait)
  void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
  {
        trace_power_start(POWER_CSTATE, (ax>>4)+1, smp_processor_id());
 +      trace_cpu_idle((ax>>4)+1, smp_processor_id());
        if (!need_resched()) {
-               if (cpu_has(&current_cpu_data, X86_FEATURE_CLFLUSH_MONITOR))
+               if (cpu_has(__this_cpu_ptr(&cpu_info), X86_FEATURE_CLFLUSH_MONITOR))
                        clflush((void *)&current_thread_info()->flags);
  
                __monitor((void *)&current_thread_info()->flags, 0, 0);
@@@ -461,8 -460,7 +461,8 @@@ static void mwait_idle(void
  {
        if (!need_resched()) {
                trace_power_start(POWER_CSTATE, 1, smp_processor_id());
-               if (cpu_has(&current_cpu_data, X86_FEATURE_CLFLUSH_MONITOR))
 +              trace_cpu_idle(1, smp_processor_id());
+               if (cpu_has(__this_cpu_ptr(&cpu_info), X86_FEATURE_CLFLUSH_MONITOR))
                        clflush((void *)&current_thread_info()->flags);
  
                __monitor((void *)&current_thread_info()->flags, 0, 0);
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/fork.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc mm/percpu.c
Simple merge
diff --cc mm/slab.c
Simple merge
diff --cc mm/vmstat.c
Simple merge