]> err.no Git - linux-2.6/blobdiff - include/asm-ia64/tlbflush.h
vfs: splice remove_suid() cleanup
[linux-2.6] / include / asm-ia64 / tlbflush.h
index cf9acb9bb1fb69b7744f4e40081ad1bdcf8061b0..3be25dfed16466c8e541a298c9e7d26feac202f1 100644 (file)
@@ -17,6 +17,7 @@
  * Now for some TLB flushing routines.  This is the kind of stuff that
  * can be very expensive, so try to avoid them whenever possible.
  */
+extern void setup_ptcg_sem(int max_purges, int from_palo);
 
 /*
  * Flush everything (kernel mapping may also have changed due to
@@ -27,9 +28,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
@@ -82,18 +85,18 @@ flush_tlb_page (struct vm_area_struct *vma, unsigned long addr)
 }
 
 /*
- * Flush the TLB entries mapping the virtually mapped linear page
- * table corresponding to address range [START-END).
+ * Flush the local TLB. Invoked from another cpu using an IPI.
  */
-static inline void
-flush_tlb_pgtables (struct mm_struct *mm, unsigned long start, unsigned long end)
+#ifdef CONFIG_SMP
+void smp_local_flush_tlb(void);
+#else
+#define smp_local_flush_tlb()
+#endif
+
+static inline void flush_tlb_kernel_range(unsigned long start,
+                                         unsigned long end)
 {
-       /*
-        * Deprecated.  The virtual page table is now flushed via the normal gather/flush
-        * interface (see tlb.h).
-        */
+       flush_tlb_all();        /* XXX fix me */
 }
 
-#define flush_tlb_kernel_range(start, end)     flush_tlb_all() /* XXX fix me */
-
 #endif /* _ASM_IA64_TLBFLUSH_H */