[SPARC64]: Don't open-code {get,put}_cpu_var() in flush_tlb_pending().
authorDavid S. Miller <davem@davemloft.net>
Thu, 27 Mar 2008 23:51:44 +0000 (16:51 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Mar 2008 22:53:25 +0000 (15:53 -0700)
Noticed by Andrew Morton.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/mm/tlb.c

index a0f000b293de6ab3c26f2267ee8d7d40c0fe1d6f..ae24919cba7cf8bef8a0ad4f8455f5c871e3920f 100644 (file)
@@ -23,11 +23,8 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers) = { 0, };
 
 void flush_tlb_pending(void)
 {
-       struct mmu_gather *mp;
+       struct mmu_gather *mp = &get_cpu_var(mmu_gathers);
 
-       preempt_disable();
-
-       mp = &__get_cpu_var(mmu_gathers);
        if (mp->tlb_nr) {
                flush_tsb_user(mp);
 
@@ -43,7 +40,7 @@ void flush_tlb_pending(void)
                mp->tlb_nr = 0;
        }
 
-       preempt_enable();
+       put_cpu_var(mmu_gathers);
 }
 
 void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t orig)