Lines Matching refs:tlb
471 static void hugepd_free(struct mmu_gather *tlb, void *hugepte) in hugepd_free() argument
477 if (atomic_read(&tlb->mm->mm_users) < 2 || in hugepd_free()
478 cpumask_equal(mm_cpumask(tlb->mm), in hugepd_free()
499 static void free_hugepd_range(struct mmu_gather *tlb, hugepd_t *hpdp, int pdshift, in free_hugepd_range() argument
531 hugepd_free(tlb, hugepte); in free_hugepd_range()
533 pgtable_free_tlb(tlb, hugepte, pdshift - shift); in free_hugepd_range()
537 static void hugetlb_free_pmd_range(struct mmu_gather *tlb, pud_t *pud, in hugetlb_free_pmd_range() argument
566 free_hugepd_range(tlb, (hugepd_t *)pmd, PMD_SHIFT, in hugetlb_free_pmd_range()
583 pmd_free_tlb(tlb, pmd, start); in hugetlb_free_pmd_range()
584 mm_dec_nr_pmds(tlb->mm); in hugetlb_free_pmd_range()
587 static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, in hugetlb_free_pud_range() argument
602 hugetlb_free_pmd_range(tlb, pud, addr, next, floor, in hugetlb_free_pud_range()
614 free_hugepd_range(tlb, (hugepd_t *)pud, PUD_SHIFT, in hugetlb_free_pud_range()
632 pud_free_tlb(tlb, pud, start); in hugetlb_free_pud_range()
638 void hugetlb_free_pgd_range(struct mmu_gather *tlb, in hugetlb_free_pgd_range() argument
664 pgd = pgd_offset(tlb->mm, addr); in hugetlb_free_pgd_range()
668 hugetlb_free_pud_range(tlb, pgd, addr, next, floor, ceiling); in hugetlb_free_pgd_range()
679 free_hugepd_range(tlb, (hugepd_t *)pgd, PGDIR_SHIFT, in hugetlb_free_pgd_range()