diff options
author | Kyle McMartin <kyle@mcmartin.ca> | 2007-10-18 03:04:56 -0400 |
---|---|---|
committer | Kyle McMartin <kyle@shortfin.cabal.ca> | 2007-10-18 03:59:31 -0400 |
commit | 6cc4525d29e22ab831387b6fac371e0118693a25 (patch) | |
tree | 7a748cfdcaf540e31682ed6c50dbdfc6f18bc42b /arch/parisc/kernel/entry.S | |
parent | 873d50e2e56741406ff9d68c275f0c560e896a80 (diff) |
[PARISC] Kill off broken irqstack code
It's been unfinished and broken long enough, and I have some ideas on how
to do it more cleanly.
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
Diffstat (limited to 'arch/parisc/kernel/entry.S')
-rw-r--r-- | arch/parisc/kernel/entry.S | 37 |
1 files changed, 3 insertions, 34 deletions
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index f324939bb9af..111d47284eac 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S | |||
@@ -98,7 +98,6 @@ | |||
98 | * The "get_stack" macros are responsible for determining the | 98 | * The "get_stack" macros are responsible for determining the |
99 | * kernel stack value. | 99 | * kernel stack value. |
100 | * | 100 | * |
101 | * For Faults: | ||
102 | * If sr7 == 0 | 101 | * If sr7 == 0 |
103 | * Already using a kernel stack, so call the | 102 | * Already using a kernel stack, so call the |
104 | * get_stack_use_r30 macro to push a pt_regs structure | 103 | * get_stack_use_r30 macro to push a pt_regs structure |
@@ -110,26 +109,6 @@ | |||
110 | * task pointer pointed to by cr30. Set the stack | 109 | * task pointer pointed to by cr30. Set the stack |
111 | * pointer to point to the end of the task structure. | 110 | * pointer to point to the end of the task structure. |
112 | * | 111 | * |
113 | * For Interrupts: | ||
114 | * If sr7 == 0 | ||
115 | * Already using a kernel stack, check to see if r30 | ||
116 | * is already pointing to the per processor interrupt | ||
117 | * stack. If it is, call the get_stack_use_r30 macro | ||
118 | * to push a pt_regs structure on the stack, and store | ||
119 | * registers there. Otherwise, call get_stack_use_cr31 | ||
120 | * to get a pointer to the base of the interrupt stack | ||
121 | * and push a pt_regs structure on that stack. | ||
122 | * else | ||
123 | * Need to set up a kernel stack, so call the | ||
124 | * get_stack_use_cr30 macro to set up a pointer | ||
125 | * to the pt_regs structure contained within the | ||
126 | * task pointer pointed to by cr30. Set the stack | ||
127 | * pointer to point to the end of the task structure. | ||
128 | * N.B: We don't use the interrupt stack for the | ||
129 | * first interrupt from userland, because signals/ | ||
130 | * resched's are processed when returning to userland, | ||
131 | * and we can sleep in those cases. | ||
132 | * | ||
133 | * Note that we use shadowed registers for temps until | 112 | * Note that we use shadowed registers for temps until |
134 | * we can save %r26 and %r29. %r26 is used to preserve | 113 | * we can save %r26 and %r29. %r26 is used to preserve |
135 | * %r8 (a shadowed register) which temporarily contained | 114 | * %r8 (a shadowed register) which temporarily contained |
@@ -1086,23 +1065,13 @@ intr_do_preempt: | |||
1086 | 1065 | ||
1087 | intr_extint: | 1066 | intr_extint: |
1088 | CMPIB=,n 0,%r16,1f | 1067 | CMPIB=,n 0,%r16,1f |
1068 | |||
1089 | get_stack_use_cr30 | 1069 | get_stack_use_cr30 |
1090 | b,n 3f | 1070 | b,n 2f |
1091 | 1071 | ||
1092 | 1: | 1072 | 1: |
1093 | #if 0 /* Interrupt Stack support not working yet! */ | ||
1094 | mfctl %cr31,%r1 | ||
1095 | copy %r30,%r17 | ||
1096 | /* FIXME! depi below has hardcoded idea of interrupt stack size (32k)*/ | ||
1097 | DEPI 0,31,15,%r17 | ||
1098 | CMPB=,n %r1,%r17,2f | ||
1099 | get_stack_use_cr31 | ||
1100 | b,n 3f | ||
1101 | #endif | ||
1102 | 2: | ||
1103 | get_stack_use_r30 | 1073 | get_stack_use_r30 |
1104 | 1074 | 2: | |
1105 | 3: | ||
1106 | save_specials %r29 | 1075 | save_specials %r29 |
1107 | virt_map | 1076 | virt_map |
1108 | save_general %r29 | 1077 | save_general %r29 |