linux/arch/parisc/kernel
John David Anglin c207a76bf1 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>
2013-05-07 20:33:03 +02:00
..
.gitignore
asm-offsets.c parisc: Use of align_frame provides stack frame. 2010-05-30 05:38:27 -04:00
binfmt_elf32.c parisc: fix redefinition of SET_PERSONALITY 2013-03-02 20:15:28 +01:00
cache.c parisc: remove the second argument of kmap_atomic 2013-05-06 22:19:00 +02:00
drivers.c parisc: Add export.h to files needing EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:00 -04:00
entry.S parisc: only re-enable interrupts if we need to schedule or deliver signals when returning to userspace 2013-05-07 20:33:03 +02:00
firmware.c Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
ftrace.c sched_clock: Add local_clock() API and improve documentation 2010-06-09 10:34:49 +02:00
hardware.c ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
head.S [PARISC] only make executable areas executable 2011-04-15 12:55:18 -05:00
hpmc.S parisc: fix partly 16/64k PAGE_SIZE boot 2013-05-06 23:08:32 +02:00
inventory.c parisc: fix possible memory leak in pat_query_module() 2013-02-20 22:47:11 +01:00
irq.c parisc: remove IRQF_DISABLED 2013-02-20 22:50:26 +01:00
Makefile parisc: Fix init_task fallout 2012-05-07 11:38:46 +02:00
module.c modules: don't hand 0 to vmalloc. 2012-12-14 13:06:43 +10:30
pa7300lc.c
pacache.S parisc: fix partly 16/64k PAGE_SIZE boot 2013-05-06 23:08:32 +02:00
parisc_ksyms.c parisc: Provide __ucmpdi2 to resolve undefined references in 32 bit builds. 2013-04-25 22:36:15 +02:00
pci-dma.c parisc: Add export.h to files needing EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:00 -04:00
pci.c parisc/PCI: factor out pcibios_setup() 2012-07-05 15:09:13 -06:00
pdc_chassis.c parisc: single_open() leaks 2013-05-05 00:10:41 -04:00
pdc_cons.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
perf_asm.S
perf_images.h
perf.c parisc: remove big kernel lock 2010-10-16 22:43:08 +02:00
process.c parisc: Use generic idle loop 2013-04-08 17:39:27 +02:00
processor.c
ptrace.c parisc: improve ptrace support for gdb single-step 2013-01-07 23:06:27 +01:00
real2.S
setup.c parisc: fix partly 16/64k PAGE_SIZE boot 2013-05-06 23:08:32 +02:00
signal32.c parisc: fix error return codes for rt_sigaction and rt_sigprocmask 2013-02-20 22:57:02 +01:00
signal32.h parisc: switch to generic compat rt_sigaction() 2013-02-03 18:16:07 -05:00
signal.c parisc: remove unused variable 'compat_val' 2013-03-02 19:56:18 +01:00
smp.c parisc: Use generic idle loop 2013-04-08 17:39:27 +02:00
stacktrace.c
sys32.h parisc: switch to generic compat rt_sigaction() 2013-02-03 18:16:07 -05:00
sys_parisc32.c get rid of union semop in sys_semctl(2) arguments 2013-03-05 15:14:16 -05:00
sys_parisc.c mm: use vm_unmapped_area() on parisc architecture 2013-02-27 19:10:09 -08:00
syscall_table.S get rid of union semop in sys_semctl(2) arguments 2013-03-05 15:14:16 -05:00
syscall.S parisc: document the parisc gateway page 2013-05-06 23:09:10 +02:00
time.c parisc: move definition of PAGE0 to asm/page.h 2012-05-10 15:12:08 -07:00
topology.c
traps.c parisc: fix whitespace errors in arch/parisc/kernel/traps.c 2013-05-06 22:24:57 +02:00
unaligned.c arch/parisc: Removing undead ifdef CONFIG_PA20 2010-10-21 21:13:29 -04:00
unwind.c parisc: unwind - optimise linked-list searches for modules 2010-10-21 21:12:19 -04:00
vmlinux.lds.S [PARISC] fix boot failure on 32-bit systems caused by branch stubs placed before .text 2012-05-25 10:52:17 +01:00