sched, sh: Fold finish_arch_switch() into switch_to()
authorPeter Zijlstra <peterz@infradead.org>
Wed, 29 Jul 2015 15:14:48 +0000 (17:14 +0200)
committerIngo Molnar <mingo@kernel.org>
Tue, 4 Aug 2015 07:38:05 +0000 (09:38 +0200)
The code looks buggy; why would we be restoring the previous task's
DSP state after we've switched to the next task?

Fix that and put the restore in switch_to(), removing the need for
finish_arch_switch().

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Cc: michael@amarulasolutions.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/sh/include/asm/switch_to_32.h

index 0c065513e7ac28dd571cb422c9a8d56deed294f0..7661b4ba82597705056e817d6798f3a1637b5d41 100644 (file)
@@ -78,6 +78,8 @@ do {                                                          \
                                                                \
        if (is_dsp_enabled(prev))                               \
                __save_dsp(prev);                               \
+       if (is_dsp_enabled(next))                               \
+               __restore_dsp(next);                            \
                                                                \
        __ts1 = (u32 *)&prev->thread.sp;                        \
        __ts2 = (u32 *)&prev->thread.pc;                        \
@@ -125,10 +127,4 @@ do {                                                               \
        last = __last;                                          \
 } while (0)
 
-#define finish_arch_switch(prev)                               \
-do {                                                           \
-       if (is_dsp_enabled(prev))                               \
-               __restore_dsp(prev);                            \
-} while (0)
-
 #endif /* __ASM_SH_SWITCH_TO_32_H */