Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 4 Jul 2017 01:08:06 +0000 (18:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 4 Jul 2017 01:08:06 +0000 (18:08 -0700)
commit9a9594efe54324e9124add7e7b1e7bdb6d0b08a3
tree4544014bf1c214c9c004fe0a64ac78eaa6232cfe
parent3ad918e65d6926490c8f18a157cea25bf29ecd3a
parent993647a293814dd47ae41d38657fda6e4ab04e33
Merge branch 'smp-hotplug-for-linus' of git://git./linux/kernel/git/tip/tip

Pull SMP hotplug updates from Thomas Gleixner:
 "This update is primarily a cleanup of the CPU hotplug locking code.

  The hotplug locking mechanism is an open coded RWSEM, which allows
  recursive locking. The main problem with that is the recursive nature
  as it evades the full lockdep coverage and hides potential deadlocks.

  The rework replaces the open coded RWSEM with a percpu RWSEM and
  establishes full lockdep coverage that way.

  The bulk of the changes fix up recursive locking issues and address
  the now fully reported potential deadlocks all over the place. Some of
  these deadlocks have been observed in the RT tree, but on mainline the
  probability was low enough to hide them away."

* 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
  cpu/hotplug: Constify attribute_group structures
  powerpc: Only obtain cpu_hotplug_lock if called by rtasd
  ARM/hw_breakpoint: Fix possible recursive locking for arch_hw_breakpoint_init
  cpu/hotplug: Remove unused check_for_tasks() function
  perf/core: Don't release cred_guard_mutex if not taken
  cpuhotplug: Link lock stacks for hotplug callbacks
  acpi/processor: Prevent cpu hotplug deadlock
  sched: Provide is_percpu_thread() helper
  cpu/hotplug: Convert hotplug locking to percpu rwsem
  s390: Prevent hotplug rwsem recursion
  arm: Prevent hotplug rwsem recursion
  arm64: Prevent cpu hotplug rwsem recursion
  kprobes: Cure hotplug lock ordering issues
  jump_label: Reorder hotplug lock and jump_label_lock
  perf/tracing/cpuhotplug: Fix locking order
  ACPI/processor: Use cpu_hotplug_disable() instead of get_online_cpus()
  PCI: Replace the racy recursion prevention
  PCI: Use cpu_hotplug_disable() instead of get_online_cpus()
  perf/x86/intel: Drop get_online_cpus() in intel_snb_check_microcode()
  x86/perf: Drop EXPORT of perf_check_microcode
  ...
12 files changed:
arch/powerpc/include/asm/topology.h
arch/powerpc/kvm/book3s_hv.c
arch/powerpc/platforms/powernv/subcore.c
arch/x86/events/core.c
arch/x86/events/intel/core.c
drivers/cpufreq/cpufreq.c
include/linux/cpuhotplug.h
include/linux/pci.h
include/linux/sched.h
kernel/cpu.c
kernel/events/core.c
kernel/kprobes.c