.fs     = __KERNEL_DS,                                          \
 }
 
+/*
+ * ColdFire stack format sbould be 0x4 for an aligned usp (will always be
+ * true on thread creation). We need to set this explicitly.
+ */
+#ifdef CONFIG_COLDFIRE
+#define setframeformat(_regs)  do { (_regs)->format = 0x4; } while(0)
+#else
+#define setframeformat(_regs)  do { } while (0)
+#endif
+
 #ifdef CONFIG_MMU
 /*
  * Do necessary setup to start up a newly executed thread.
 {
        regs->pc = pc;
        regs->sr &= ~0x2000;
+       setframeformat(regs);
        wrusp(usp);
 }
 
 
 #else
 
-/*
- * Coldfire stacks need to be re-aligned on trap exit, conventional
- * 68k can handle this case cleanly.
- */
-#ifdef CONFIG_COLDFIRE
-#define reformat(_regs)                do { (_regs)->format = 0x4; } while(0)
-#else
-#define reformat(_regs)                do { } while (0)
-#endif
-
 #define start_thread(_regs, _pc, _usp)                  \
 do {                                                    \
        (_regs)->pc = (_pc);                            \
        ((struct switch_stack *)(_regs))[-1].a6 = 0;    \
-       reformat(_regs);                                \
+       setframeformat(_regs);                          \
        if (current->mm)                                \
                (_regs)->d5 = current->mm->start_data;  \
        (_regs)->sr &= ~0x2000;                         \