]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-arm/tlb.h
asus-laptop: clean write_status
[linux-2.6-omap-h63xx.git] / include / asm-arm / tlb.h
index 9bb325c54645e6188402260a006ea4cb72678b43..cb740025d4131382de81ac3925ffd7b4359bf94f 100644 (file)
 
 #include <asm/cacheflush.h>
 #include <asm/tlbflush.h>
+
+#ifndef CONFIG_MMU
+
+#include <linux/pagemap.h>
+#include <asm-generic/tlb.h>
+
+#else /* !CONFIG_MMU */
+
 #include <asm/pgalloc.h>
 
 /*
  */
 struct mmu_gather {
        struct mm_struct        *mm;
-       unsigned int            freed;
        unsigned int            fullmm;
-
-       unsigned int            flushes;
-       unsigned int            avoided_flushes;
 };
 
 DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
@@ -39,11 +43,9 @@ DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
 static inline struct mmu_gather *
 tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush)
 {
-       int cpu = smp_processor_id();
-       struct mmu_gather *tlb = &per_cpu(mmu_gathers, cpu);
+       struct mmu_gather *tlb = &get_cpu_var(mmu_gathers);
 
        tlb->mm = mm;
-       tlb->freed = 0;
        tlb->fullmm = full_mm_flush;
 
        return tlb;
@@ -52,24 +54,13 @@ tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush)
 static inline void
 tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
 {
-       struct mm_struct *mm = tlb->mm;
-       unsigned long freed = tlb->freed;
-       int rss = get_mm_counter(mm, rss);
-
-       if (rss < freed)
-               freed = rss;
-       add_mm_counter(mm, rss, -freed);
-
        if (tlb->fullmm)
-               flush_tlb_mm(mm);
+               flush_tlb_mm(tlb->mm);
 
        /* keep the page table cache within bounds */
        check_pgt_cache();
-}
 
-static inline unsigned int tlb_is_full_mm(struct mmu_gather *tlb)
-{
-       return tlb->fullmm;
+       put_cpu_var(mmu_gathers);
 }
 
 #define tlb_remove_tlb_entry(tlb,ptep,address) do { } while (0)
@@ -99,4 +90,5 @@ tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
 
 #define tlb_migrate_finish(mm)         do { } while (0)
 
+#endif /* CONFIG_MMU */
 #endif