]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/asm-ia64/tlbflush.h
Merge branch 'bsg' of git://git.kernel.dk/data/git/linux-2.6-block
[karo-tx-linux.git] / include / asm-ia64 / tlbflush.h
index b65c62702724afe056d5f231e5e5b2b9d08b36ef..e37f9fbf33af8babd7406b648219a1dca48bc152 100644 (file)
@@ -6,7 +6,6 @@
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  */
 
-#include <linux/config.h>
 
 #include <linux/mm.h>
 
@@ -28,9 +27,11 @@ extern void local_flush_tlb_all (void);
 #ifdef CONFIG_SMP
   extern void smp_flush_tlb_all (void);
   extern void smp_flush_tlb_mm (struct mm_struct *mm);
+  extern void smp_flush_tlb_cpumask (cpumask_t xcpumask);
 # define flush_tlb_all()       smp_flush_tlb_all()
 #else
 # define flush_tlb_all()       local_flush_tlb_all()
+# define smp_flush_tlb_cpumask(m) local_flush_tlb_all()
 #endif
 
 static inline void
@@ -51,6 +52,7 @@ flush_tlb_mm (struct mm_struct *mm)
        if (!mm)
                return;
 
+       set_bit(mm->context, ia64_ctx.flushmap);
        mm->context = 0;
 
        if (atomic_read(&mm->mm_users) == 0)
@@ -94,6 +96,15 @@ flush_tlb_pgtables (struct mm_struct *mm, unsigned long start, unsigned long end
         */
 }
 
+/*
+ * Flush the local TLB. Invoked from another cpu using an IPI.
+ */
+#ifdef CONFIG_SMP
+void smp_local_flush_tlb(void);
+#else
+#define smp_local_flush_tlb()
+#endif
+
 #define flush_tlb_kernel_range(start, end)     flush_tlb_all() /* XXX fix me */
 
 #endif /* _ASM_IA64_TLBFLUSH_H */