Suspend 2 merge: 31/51: Export tlb flushing

Nigel Cunningham
2004-11-24T13:27:56Z

This patch adds a do_flush_tlb_all function that does the
SMP-appropriate thing for suspend after the image is restored.

diff -ruN 818-tlb-flushing-functions-old/arch/i386/kernel/smp.c 818-tlb-flushing-functions-new/arch/i386/kernel/smp.c
--- 818-tlb-flushing-functions-old/arch/i386/kernel/smp.c 2004-11-06 09:27:19.225681536 +1100
+++ 818-tlb-flushing-functions-new/arch/i386/kernel/smp.c 2004-11-04 16:27:41.000000000 +1100
@@ -476,7 +476,7 @@
preempt_enable();
}

-static void do_flush_tlb_all(void* info)
+void do_flush_tlb_all(void* info)
{
unsigned long cpu = smp_processor_id();

diff -ruN 818-tlb-flushing-functions-old/include/asm-i386/tlbflush.h 818-tlb-flushing-functions-new/include/asm-i386/tlbflush.h
--- 818-tlb-flushing-functions-old/include/asm-i386/tlbflush.h 2004-11-03 21:55:01.000000000 +1100
+++ 818-tlb-flushing-functions-new/include/asm-i386/tlbflush.h 2004-11-04 16:27:41.000000000 +1100
@@ -82,6 +82,7 @@
#define flush_tlb() __flush_tlb()
#define flush_tlb_all() __flush_tlb_all()
#define local_flush_tlb() __flush_tlb()
+#define local_flush_tlb_all() __flush_tlb_all();

static inline void flush_tlb_mm(struct mm_struct *mm)
{
@@ -114,6 +115,10 @@
extern void flush_tlb_current_task(void);
extern void flush_tlb_mm(struct mm_struct *);
extern void flush_tlb_page(struct vm_area_struct *, unsigned long);
+extern void do_flush_tlb_all(void * info);
+
+#define local_flush_tlb_all() \
+ do_flush_tlb_all(NULL);

#define flush_tlb() flush_tlb_current_task()