Suspend 2 merge: 31/51: Export tlb flushing

From: Nigel Cunningham
Date: Wed Nov 24 2004 - 09:24:18 EST


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()



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/