diff options
author | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2009-04-07 16:34:16 -0400 |
---|---|---|
committer | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2009-04-07 16:34:16 -0400 |
commit | 38f4b8c0da01ae7cd9b93386842ce272d6fde9ab (patch) | |
tree | 3c8c52201aac038094bfea7efdd0984a8f62045e /arch/powerpc/kernel/head_booke.h | |
parent | a811454027352c762e0d5bba1b1d8f7d26bf96ae (diff) | |
parent | 8e2c4f2844c0e8dcdfe312e5f2204854ca8532c6 (diff) |
Merge commit 'origin/master' into for-linus/xen/master
* commit 'origin/master': (4825 commits)
Fix build errors due to CONFIG_BRANCH_TRACER=y
parport: Use the PCI IRQ if offered
tty: jsm cleanups
Adjust path to gpio headers
KGDB_SERIAL_CONSOLE check for module
Change KCONFIG name
tty: Blackin CTS/RTS
Change hardware flow control from poll to interrupt driven
Add support for the MAX3100 SPI UART.
lanana: assign a device name and numbering for MAX3100
serqt: initial clean up pass for tty side
tty: Use the generic RS485 ioctl on CRIS
tty: Correct inline types for tty_driver_kref_get()
splice: fix deadlock in splicing to file
nilfs2: support nanosecond timestamp
nilfs2: introduce secondary super block
nilfs2: simplify handling of active state of segments
nilfs2: mark minor flag for checkpoint created by internal operation
nilfs2: clean up sketch file
nilfs2: super block operations fix endian bug
...
Conflicts:
arch/x86/include/asm/thread_info.h
arch/x86/lguest/boot.c
drivers/xen/manage.c
Diffstat (limited to 'arch/powerpc/kernel/head_booke.h')
-rw-r--r-- | arch/powerpc/kernel/head_booke.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h index fce2df988504..95f39f1e68d4 100644 --- a/arch/powerpc/kernel/head_booke.h +++ b/arch/powerpc/kernel/head_booke.h | |||
@@ -10,6 +10,15 @@ | |||
10 | mtspr SPRN_IVOR##vector_number,r26; \ | 10 | mtspr SPRN_IVOR##vector_number,r26; \ |
11 | sync | 11 | sync |
12 | 12 | ||
13 | #if (THREAD_SHIFT < 15) | ||
14 | #define ALLOC_STACK_FRAME(reg, val) \ | ||
15 | addi reg,reg,val | ||
16 | #else | ||
17 | #define ALLOC_STACK_FRAME(reg, val) \ | ||
18 | addis reg,reg,val@ha; \ | ||
19 | addi reg,reg,val@l | ||
20 | #endif | ||
21 | |||
13 | #define NORMAL_EXCEPTION_PROLOG \ | 22 | #define NORMAL_EXCEPTION_PROLOG \ |
14 | mtspr SPRN_SPRG0,r10; /* save two registers to work with */\ | 23 | mtspr SPRN_SPRG0,r10; /* save two registers to work with */\ |
15 | mtspr SPRN_SPRG1,r11; \ | 24 | mtspr SPRN_SPRG1,r11; \ |
@@ -20,7 +29,7 @@ | |||
20 | beq 1f; \ | 29 | beq 1f; \ |
21 | mfspr r1,SPRN_SPRG3; /* if from user, start at top of */\ | 30 | mfspr r1,SPRN_SPRG3; /* if from user, start at top of */\ |
22 | lwz r1,THREAD_INFO-THREAD(r1); /* this thread's kernel stack */\ | 31 | lwz r1,THREAD_INFO-THREAD(r1); /* this thread's kernel stack */\ |
23 | addi r1,r1,THREAD_SIZE; \ | 32 | ALLOC_STACK_FRAME(r1, THREAD_SIZE); \ |
24 | 1: subi r1,r1,INT_FRAME_SIZE; /* Allocate an exception frame */\ | 33 | 1: subi r1,r1,INT_FRAME_SIZE; /* Allocate an exception frame */\ |
25 | mr r11,r1; \ | 34 | mr r11,r1; \ |
26 | stw r10,_CCR(r11); /* save various registers */\ | 35 | stw r10,_CCR(r11); /* save various registers */\ |
@@ -70,10 +79,10 @@ | |||
70 | 79 | ||
71 | /* only on e500mc/e200 */ | 80 | /* only on e500mc/e200 */ |
72 | #define DEBUG_STACK_BASE dbgirq_ctx | 81 | #define DEBUG_STACK_BASE dbgirq_ctx |
73 | #ifdef CONFIG_PPC_E500MC | 82 | #ifdef CONFIG_E200 |
74 | #define DEBUG_SPRG SPRN_SPRG9 | ||
75 | #else | ||
76 | #define DEBUG_SPRG SPRN_SPRG6W | 83 | #define DEBUG_SPRG SPRN_SPRG6W |
84 | #else | ||
85 | #define DEBUG_SPRG SPRN_SPRG9 | ||
77 | #endif | 86 | #endif |
78 | 87 | ||
79 | #define EXC_LVL_FRAME_OVERHEAD (THREAD_SIZE - INT_FRAME_SIZE - EXC_LVL_SIZE) | 88 | #define EXC_LVL_FRAME_OVERHEAD (THREAD_SIZE - INT_FRAME_SIZE - EXC_LVL_SIZE) |
@@ -279,7 +288,7 @@ label: | |||
279 | lwz r11,GPR11(r8); \ | 288 | lwz r11,GPR11(r8); \ |
280 | mfspr r8,DEBUG_SPRG; \ | 289 | mfspr r8,DEBUG_SPRG; \ |
281 | \ | 290 | \ |
282 | RFDI; \ | 291 | PPC_RFDI; \ |
283 | b .; \ | 292 | b .; \ |
284 | \ | 293 | \ |
285 | /* continue normal handling for a debug exception... */ \ | 294 | /* continue normal handling for a debug exception... */ \ |