From eba69831e8f35174e2e15e373a66f40dc0be8929 Mon Sep 17 00:00:00 2001 From: Kurt Mahan Date: Wed, 14 May 2008 12:23:12 -0600 Subject: [PATCH] Force branch-cache invalidate on task switch. When finishing a task switch make sure the branch cache gets invalidated to ensure no stale entries exist for the next user space. LTIBName: mcfv4e-brcache-inval Signed-off-by: Kurt Mahan --- include/asm-m68k/system.h | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) --- a/include/asm-m68k/system.h +++ b/include/asm-m68k/system.h @@ -5,9 +5,24 @@ #include #include #include +#include #ifdef __KERNEL__ +#ifdef CONFIG_COLDFIRE +#define FLUSH_BC (0x00040000) + +#define finish_arch_switch(prev) do { \ + unsigned long tmpreg; \ + asm volatile ( "move.l %2,%0\n" \ + "orl %1,%0\n" \ + "movec %0,%%cacr" \ + : "=&d" (tmpreg) \ + : "id" (FLUSH_BC), "m" (shadow_cacr)); \ + } while(0) + +#endif + /* * switch_to(n) should switch tasks to task ptr, first checking that * ptr isn't the current task, in which case it does nothing. This