|
@@ -136,7 +136,7 @@ static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
|
|
|
static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
|
|
|
unsigned long address)
|
|
|
{
|
|
|
- if (tlb->mm->context.asce_limit <= _REGION3_SIZE)
|
|
|
+ if (mm_pmd_folded(tlb->mm))
|
|
|
return;
|
|
|
pgtable_pmd_page_dtor(virt_to_page(pmd));
|
|
|
tlb_remove_table(tlb, pmd);
|
|
@@ -152,7 +152,7 @@ static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
|
|
|
static inline void p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d,
|
|
|
unsigned long address)
|
|
|
{
|
|
|
- if (tlb->mm->context.asce_limit <= _REGION1_SIZE)
|
|
|
+ if (mm_p4d_folded(tlb->mm))
|
|
|
return;
|
|
|
tlb_remove_table(tlb, p4d);
|
|
|
}
|
|
@@ -167,7 +167,7 @@ static inline void p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d,
|
|
|
static inline void pud_free_tlb(struct mmu_gather *tlb, pud_t *pud,
|
|
|
unsigned long address)
|
|
|
{
|
|
|
- if (tlb->mm->context.asce_limit <= _REGION2_SIZE)
|
|
|
+ if (mm_pud_folded(tlb->mm))
|
|
|
return;
|
|
|
tlb_remove_table(tlb, pud);
|
|
|
}
|