]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-arm26/tlb.h
[PATCH] mm: tlb_gather_mmu get_cpu_var
[linux-2.6-omap-h63xx.git] / include / asm-arm26 / tlb.h
index 1316352a58f3d451b2a1985970a03227643e5ef7..8486b00a679935e6a5f797b0710d820ed50e3c3a 100644 (file)
@@ -17,13 +17,12 @@ struct mmu_gather {
         unsigned int            avoided_flushes;
 };
 
-extern struct mmu_gather mmu_gathers[NR_CPUS];
+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 = &mmu_gathers[cpu];
+        struct mmu_gather *tlb = &get_cpu_var(mmu_gathers);
 
         tlb->mm = mm;
         tlb->freed = 0;
@@ -52,6 +51,8 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
 
         /* keep the page table cache within bounds */
         check_pgt_cache();
+
+        put_cpu_var(mmu_gathers);
 }