SGI-XP: handle non-fatal traps
authorRobin Holt <holt@sgi.com>
Thu, 20 Dec 2012 23:05:50 +0000 (15:05 -0800)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 3 Jan 2013 03:33:46 +0000 (03:33 +0000)
commit4b8bb650d4d1cafca4e69914cbd8c808c57f5bbe
tree2a8e164965392e6517b79e82558c35fecc46dd3b
parent5f124a5db0b3f59232e24586ee75928793c87efb
SGI-XP: handle non-fatal traps

commit 891348ca0f66206f1dc0e30d63757e3df1ae2d15 upstream.

We found a user code which was raising a divide-by-zero trap.  That trap
would lead to XPC connections between system-partitions being torn down
due to the die_chain notifier callouts it received.

This also revealed a different issue where multiple callers into
xpc_die_deactivate() would all attempt to do the disconnect in parallel
which would sometimes lock up but often overwhelm the console on very
large machines as each would print at least one line of output at the
end of the deactivate.

I reviewed all the users of the die_chain notifier and changed the code
to ignore the notifier callouts for reasons which will not actually lead
to a system to continue on to call die().

[akpm@linux-foundation.org: fix ia64]
Signed-off-by: Robin Holt <holt@sgi.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/misc/sgi-xp/xpc_main.c