[PATCH] alpha smp fix
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>
Thu, 30 Jun 2005 16:02:18 +0000 (20:02 +0400)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 1 Jul 2005 05:29:48 +0000 (22:29 -0700)
commiteaf05be039cf5adfba5b1846452ce89646110fdb
treeda81bed900c4a80f53379feb2de477fc4047792c
parent62351cc38d3eaf3de0327054dd6ebc039f4da80d
[PATCH] alpha smp fix

As usual, the reason of this breakage is quite silly: in do_entIF, we
are checking for PS == 0 to see whether it was a kernel BUG() or
userspace trap.

It works, unless BUG() happens in interrupt - PS is not 0 in kernel mode
due to non-zero IPL, and the things get messed up horribly then.  In
this particular case it was BUG_ON(!irqs_disabled()) triggered in
run_posix_cpu_timers(), so we ended up shooting "current" with the
bursts of one SIGTRAP and three SIGILLs on every timer tick.  ;-)
arch/alpha/kernel/traps.c