ARM: pm: ensure our temporary page table entry is removed from the TLB
Russell King [Thu, 23 Jun 2011 13:24:09 +0000 (14:24 +0100)]
Ensure that our temporary page table entry is flushed from the TLB
before we resume normal operations.  This ensures that userspace
won't trip over the stale TLB entry.

Tested-by: Kevin Hilman <khilman@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

arch/arm/include/asm/suspend.h

index 8d5b446..f8db9d0 100644 (file)
@@ -2,6 +2,7 @@
 #define __ASM_ARM_SUSPEND_H
 
 #include <asm/memory.h>
+#include <asm/tlbflush.h>
 
 extern void cpu_resume(void);
 
@@ -14,6 +15,7 @@ static inline void cpu_suspend(unsigned long arg, void (*fn)(unsigned long))
        extern void __cpu_suspend(int, long, unsigned long,
                                  void (*)(unsigned long));
        __cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, arg, fn);
+       flush_tlb_all();
 }
 
 #endif