diff options
Diffstat (limited to 'arch/m68k/platform/68328/entry.S')
-rw-r--r-- | arch/m68k/platform/68328/entry.S | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/arch/m68k/platform/68328/entry.S b/arch/m68k/platform/68328/entry.S index f68dce766c0a..293e1eba9acc 100644 --- a/arch/m68k/platform/68328/entry.S +++ b/arch/m68k/platform/68328/entry.S | |||
@@ -236,27 +236,26 @@ ret_from_interrupt: | |||
236 | * Handler for uninitialized and spurious interrupts. | 236 | * Handler for uninitialized and spurious interrupts. |
237 | */ | 237 | */ |
238 | ENTRY(bad_interrupt) | 238 | ENTRY(bad_interrupt) |
239 | addql #1,num_spurious | 239 | addql #1,irq_err_count |
240 | rte | 240 | rte |
241 | 241 | ||
242 | /* | 242 | /* |
243 | * Beware - when entering resume, prev (the current task) is | 243 | * Beware - when entering resume, prev (the current task) is |
244 | * in a0, next (the new task) is in a1,so don't change these | 244 | * in a0, next (the new task) is in a1, so don't change these |
245 | * registers until their contents are no longer needed. | 245 | * registers until their contents are no longer needed. |
246 | */ | 246 | */ |
247 | ENTRY(resume) | 247 | ENTRY(resume) |
248 | movel %a0,%d1 /* save prev thread in d1 */ | 248 | movel %a0,%d1 /* save prev thread in d1 */ |
249 | movew %sr,%a0@(TASK_THREAD+THREAD_SR) /* save sr */ | 249 | movew %sr,%a0@(TASK_THREAD+THREAD_SR) /* save sr */ |
250 | movel %usp,%a2 /* save usp */ | ||
251 | movel %a2,%a0@(TASK_THREAD+THREAD_USP) | ||
252 | |||
253 | SAVE_SWITCH_STACK | 250 | SAVE_SWITCH_STACK |
254 | movel %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack */ | 251 | movel %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack */ |
252 | movel %usp,%a3 /* save usp */ | ||
253 | movel %a3,%a0@(TASK_THREAD+THREAD_USP) | ||
254 | |||
255 | movel %a1@(TASK_THREAD+THREAD_USP),%a3 /* restore user stack */ | ||
256 | movel %a3,%usp | ||
255 | movel %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new thread stack */ | 257 | movel %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new thread stack */ |
256 | RESTORE_SWITCH_STACK | 258 | RESTORE_SWITCH_STACK |
257 | |||
258 | movel %a1@(TASK_THREAD+THREAD_USP),%a0 /* restore user stack */ | ||
259 | movel %a0,%usp | ||
260 | movew %a1@(TASK_THREAD+THREAD_SR),%sr /* restore thread status reg */ | 259 | movew %a1@(TASK_THREAD+THREAD_SR),%sr /* restore thread status reg */ |
261 | rts | 260 | rts |
262 | 261 | ||