aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/hugetlbpage.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/mm/hugetlbpage.c')
-rw-r--r--arch/powerpc/mm/hugetlbpage.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index 90bb6d9409bf..eb923654ba80 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c
@@ -472,12 +472,13 @@ static void hugepd_free(struct mmu_gather *tlb, void *hugepte)
472{ 472{
473 struct hugepd_freelist **batchp; 473 struct hugepd_freelist **batchp;
474 474
475 batchp = &__get_cpu_var(hugepd_freelist_cur); 475 batchp = &get_cpu_var(hugepd_freelist_cur);
476 476
477 if (atomic_read(&tlb->mm->mm_users) < 2 || 477 if (atomic_read(&tlb->mm->mm_users) < 2 ||
478 cpumask_equal(mm_cpumask(tlb->mm), 478 cpumask_equal(mm_cpumask(tlb->mm),
479 cpumask_of(smp_processor_id()))) { 479 cpumask_of(smp_processor_id()))) {
480 kmem_cache_free(hugepte_cache, hugepte); 480 kmem_cache_free(hugepte_cache, hugepte);
481 put_cpu_var(hugepd_freelist_cur);
481 return; 482 return;
482 } 483 }
483 484
@@ -491,6 +492,7 @@ static void hugepd_free(struct mmu_gather *tlb, void *hugepte)
491 call_rcu_sched(&(*batchp)->rcu, hugepd_free_rcu_callback); 492 call_rcu_sched(&(*batchp)->rcu, hugepd_free_rcu_callback);
492 *batchp = NULL; 493 *batchp = NULL;
493 } 494 }
495 put_cpu_var(hugepd_freelist_cur);
494} 496}
495#endif 497#endif
496 498