]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit078364bdc56b757c64a3b3dfd85aeacb8fb64d11
treef9f05b4d721dd215e28318337617beada3c238dd
parentb25dba3cfbd22f6bf2f565b5e146f54d268e2ab0
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