diff options
Diffstat (limited to 'arch/m68k/platform/coldfire/entry.S')
-rw-r--r-- | arch/m68k/platform/coldfire/entry.S | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/m68k/platform/coldfire/entry.S b/arch/m68k/platform/coldfire/entry.S index 3157461a8d1d..863889fc31c9 100644 --- a/arch/m68k/platform/coldfire/entry.S +++ b/arch/m68k/platform/coldfire/entry.S | |||
@@ -54,7 +54,6 @@ sw_usp: | |||
54 | .globl ret_from_signal | 54 | .globl ret_from_signal |
55 | .globl sys_call_table | 55 | .globl sys_call_table |
56 | .globl inthandler | 56 | .globl inthandler |
57 | .globl fasthandler | ||
58 | 57 | ||
59 | enosys: | 58 | enosys: |
60 | mov.l #sys_ni_syscall,%d3 | 59 | mov.l #sys_ni_syscall,%d3 |
@@ -63,6 +62,7 @@ enosys: | |||
63 | ENTRY(system_call) | 62 | ENTRY(system_call) |
64 | SAVE_ALL_SYS | 63 | SAVE_ALL_SYS |
65 | move #0x2000,%sr /* enable intrs again */ | 64 | move #0x2000,%sr /* enable intrs again */ |
65 | GET_CURRENT(%d2) | ||
66 | 66 | ||
67 | cmpl #NR_syscalls,%d0 | 67 | cmpl #NR_syscalls,%d0 |
68 | jcc enosys | 68 | jcc enosys |
@@ -166,6 +166,7 @@ Lsignal_return: | |||
166 | */ | 166 | */ |
167 | ENTRY(inthandler) | 167 | ENTRY(inthandler) |
168 | SAVE_ALL_INT | 168 | SAVE_ALL_INT |
169 | GET_CURRENT(%d2) | ||
169 | 170 | ||
170 | movew %sp@(PT_OFF_FORMATVEC),%d0 /* put exception # in d0 */ | 171 | movew %sp@(PT_OFF_FORMATVEC),%d0 /* put exception # in d0 */ |
171 | andl #0x03fc,%d0 /* mask out vector only */ | 172 | andl #0x03fc,%d0 /* mask out vector only */ |
@@ -191,7 +192,9 @@ ENTRY(resume) | |||
191 | movel %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack pointer */ | 192 | movel %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack pointer */ |
192 | RDUSP /* movel %usp,%a3 */ | 193 | RDUSP /* movel %usp,%a3 */ |
193 | movel %a3,%a0@(TASK_THREAD+THREAD_USP) /* save thread user stack */ | 194 | movel %a3,%a0@(TASK_THREAD+THREAD_USP) /* save thread user stack */ |
194 | 195 | #ifdef CONFIG_MMU | |
196 | movel %a1,%a2 /* set new current */ | ||
197 | #endif | ||
195 | movel %a1@(TASK_THREAD+THREAD_USP),%a3 /* restore thread user stack */ | 198 | movel %a1@(TASK_THREAD+THREAD_USP),%a3 /* restore thread user stack */ |
196 | WRUSP /* movel %a3,%usp */ | 199 | WRUSP /* movel %a3,%usp */ |
197 | movel %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new kernel stack */ | 200 | movel %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new kernel stack */ |