[POWERPC] Avoid pointless WARN_ON(irqs_disabled()) from panic codepath
authorSatyam Sharma <satyam@infradead.org>
Mon, 17 Sep 2007 23:43:40 +0000 (09:43 +1000)
committerPaul Mackerras <paulus@samba.org>
Sat, 22 Sep 2007 04:49:22 +0000 (14:49 +1000)
commit8fd7675c092f79f240246c76728477ec4e7f7f09
tree848a6f4d312711a84b882e74c093e30158a86c7b
parent17b5ee04c09a158129eb538933eae7be956190e9
[POWERPC] Avoid pointless WARN_ON(irqs_disabled()) from panic codepath

> ------------[ cut here ]------------
> Badness at arch/powerpc/kernel/smp.c:202

comes when smp_call_function_map() has been called with irqs disabled,
which is illegal. However, there is a special case, the panic() codepath,
when we do not want to warn about this -- warning at that time is pointless
anyway, and only serves to scroll away the *real* cause of the panic and
distracts from the real bug.

* So let's extract the WARN_ON() from smp_call_function_map() into all its
  callers -- smp_call_function() and smp_call_function_single()

* Also, introduce another caller of smp_call_function_map(), namely
  __smp_call_function() (and make smp_call_function() a wrapper over this)
  which does *not* warn about disabled irqs

* Use this __smp_call_function() from the panic codepath's smp_send_stop()

We also end having to move code of smp_send_stop() below the definition
of __smp_call_function().

Signed-off-by: Satyam Sharma <satyam@infradead.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/smp.c