parisc: only re-enable interrupts if we need to schedule or deliver signals when...
authorJohn David Anglin <dave.anglin@bell.net>
Tue, 7 May 2013 00:07:25 +0000 (00:07 +0000)
committerHelge Deller <deller@gmx.de>
Tue, 7 May 2013 18:33:03 +0000 (20:33 +0200)
commitc207a76bf155cb5cf24cf849c08f6555e9180594
treef9f05b4d721dd215e28318337617beada3c238dd
parentf21dda025ab00da197ac30b6c6690c380d838683
parisc: only re-enable interrupts if we need to schedule or deliver signals when returning to userspace

Helge and I have found that we have a kernel stack overflow problem
which causes a variety of random failures.
Currently, we re-enable interrupts when returning from an external
interrupt incase we need to schedule or delivery
signals.  As a result, a potentially unlimited number of interrupts
can occur while we are running on the kernel
stack.  It is very limited in space (currently, 16k).  This change
defers enabling interrupts until we have
actually decided to schedule or delivery signals.  This only occurs
when we about to return to userspace.  This
limits the number of interrupts on the kernel stack to one.  In other
cases, interrupts remain disabled until the
final return from interrupt (rfi).

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/kernel/entry.S