ARM: CPU hotplug: Delegate complete() to surviving CPU

The ARM implementation of arch_cpu_idle_dead() invokes complete(), but
does so after RCU has stopped watching the outgoing CPU, which results
in lockdep complaints because complete() invokes functions containing RCU
readers.  This patch therefore uses Thomas Gleixner's trick of delegating
the complete() call to a surviving CPU via smp_call_function_single().

This patch is untested, and probably does not even build.

Reported by many people, but most recently by:

Reported-by: Peng Fan <>
Reported-by: Russell King - ARM Linux <>
Signed-off-by: Paul E. McKenney <>
1 file changed