Srivatsa S. Bhat eff722b06b ia64, salinfo: Fix 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 salinfo code in ia64 by using this latter form of callback
registration.

Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
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:40 +01:00
..
2010-02-08 10:42:17 -08:00
2013-03-19 16:14:52 -07:00
2010-03-03 11:25:59 +01:00
2012-03-28 18:30:02 +01:00
2012-03-28 18:30:02 +01:00
2013-12-10 16:11:07 -08:00
2012-03-28 18:30:02 +01:00
2013-03-19 16:14:53 -07:00
2012-03-28 18:30:02 +01:00
2011-03-31 11:26:23 -03:00
2013-11-09 00:16:29 -05:00
2013-06-03 15:47:42 -07:00
2010-05-18 14:45:54 -07:00
2012-03-28 18:30:02 +01:00