From: Geert Uytterhoeven M68k: Set last in switch_to(), fix asm constraints (from Andreas Schwab) include/asm-m68k/system.h | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff -puN include/asm-m68k/system.h~m68k-switch_to-fix include/asm-m68k/system.h --- 25/include/asm-m68k/system.h~m68k-switch_to-fix 2003-08-24 12:07:17.000000000 -0700 +++ 25-akpm/include/asm-m68k/system.h 2003-08-24 12:07:17.000000000 -0700 @@ -36,9 +36,12 @@ asmlinkage void resume(void); #define switch_to(prev,next,last) do { \ register void *_prev __asm__ ("a0") = (prev); \ register void *_next __asm__ ("a1") = (next); \ + register void *_last __asm__ ("d1"); \ __asm__ __volatile__("jbsr resume" \ - : : "a" (_prev), "a" (_next) \ - : "d0", "d1", "d2", "d3", "d4", "d5", "a0", "a1"); \ + : "=a" (_prev), "=a" (_next), "=d" (_last) \ + : "0" (_prev), "1" (_next) \ + : "d0", "d2", "d3", "d4", "d5"); \ + (last) = _last; \ } while (0) _