[POWERPC] Add IRQSTACKS support on ppc32
authorKumar Gala <galak@kernel.crashing.org>
Mon, 28 Apr 2008 06:21:22 +0000 (16:21 +1000)
committerPaul Mackerras <paulus@samba.org>
Tue, 29 Apr 2008 05:57:34 +0000 (15:57 +1000)
commit85218827cc4ca900867807f19345418164ffc108
tree1813b7fadb7c077acd0ef62f57385b7424ca0121
parentdd18434ff0b7d9b9ad3d596985fc84b329d2f9a8
[POWERPC] Add IRQSTACKS support on ppc32

This makes it possible to use separate stacks for hard and soft IRQs
on 32-bit powerpc as well as on 64-bit.  The code for 32-bit is just
the 32-bit analog of the 64-bit code.

* Added allocation and initialization of the irq stacks.  We limit the
  stacks to be in lowmem for ppc32.
* Implemented ppc32 versions of call_do_softirq() and call_handle_irq()
  to switch the stack pointers
* Reworked how we do stack overflow detection.  We now keep around the
  limit of the stack in the thread_struct and compare against the limit
  to see if we've overflowed.  We can now use this on ppc64 if desired.

[ paulus@samba.org: Fixed bug on 6xx where we need to reload r9 with the
  thread_info pointer. ]

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/Kconfig.debug
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/entry_32.S
arch/powerpc/kernel/irq.c
arch/powerpc/kernel/misc_32.S
arch/powerpc/kernel/process.c
arch/powerpc/kernel/setup_32.c
include/asm-powerpc/processor.h