2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-29 23:53:55 +08:00
linux-next/arch/s390
Srivatsa S. Bhat f4edbcd5d1 s390, smp: Fix CPU hotplug callback registration
Subsystems that want to register CPU hotplug callbacks, as well as perform
initialization for the CPUs that are already online, often do it as shown
below:

	get_online_cpus();

	for_each_online_cpu(cpu)
		init_cpu(cpu);

	register_cpu_notifier(&foobar_cpu_notifier);

	put_online_cpus();

This is wrong, since it is prone to ABBA deadlocks involving the
cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
with CPU hotplug operations).

Instead, the correct and race-free way of performing the callback
registration is:

	cpu_notifier_register_begin();

	for_each_online_cpu(cpu)
		init_cpu(cpu);

	/* Note the use of the double underscored version of the API */
	__register_cpu_notifier(&foobar_cpu_notifier);

	cpu_notifier_register_done();

Fix the smp code in s390 by using this latter form of callback registration.

Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-03-20 13:43:41 +01:00
..
appldata s390/appldata: restore missing init_virt_timer() 2014-01-29 09:07:51 +01:00
boot s390/boot: Install bzImage as default kernel image 2013-11-15 14:08:36 +01:00
configs s390: add a couple of useful defconfigs 2013-10-24 17:17:14 +02:00
crypto crypto: s390 - fix des and des3_ede ctr concurrency issue 2014-01-30 21:45:14 +08:00
hypfs s390/hypfs: add interface for diagnose 0x304 2014-01-24 09:40:59 +01:00
include Second batch of KVM updates. Some minor x86 fixes, 2014-01-31 08:37:32 -08:00
kernel s390, smp: Fix CPU hotplug callback registration 2014-03-20 13:43:41 +01:00
kvm This deals with 2 guest features that need enablement in the kvm host: 2014-01-23 11:38:13 +01:00
lib s390/uaccess: remove dead extern declarations, make functions static 2014-01-22 14:02:17 +01:00
math-emu s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
mm s390/dump: Fix dump memory detection 2014-02-04 15:39:51 +01:00
net s390/bpf,jit: fix 32 bit divisions, use unsigned divide instructions 2014-01-17 18:54:49 -08:00
oprofile s390/cpum_sf: Add raw data sampling to support the diagnostic-sampling function 2013-12-16 14:38:00 +01:00
pci s390/pci/dma: use correct segment boundary size 2014-02-21 08:48:27 +01:00
defconfig Update default configuration 2013-10-24 17:17:15 +02:00
Kbuild s390/pci: base support 2012-11-30 15:40:45 +01:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-01-28 09:02:24 -08:00
Kconfig.debug Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS 2013-04-30 17:04:09 -07:00
Makefile s390: allow to set gcc -mtune flag 2013-10-31 09:54:01 +01:00