Commit 02e790ee authored by Alexander Gordeev's avatar Alexander Gordeev Committed by Vasily Gorbik

s390/mm: make pte_free_tlb() similar to pXd_free_tlb()

Make pte_free_tlb() look similar to pXd_free_tlb() family
functions.
Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Reviewed-by: default avatarGerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 0031f1c7
...@@ -25,7 +25,6 @@ void crst_table_free(struct mm_struct *, unsigned long *); ...@@ -25,7 +25,6 @@ void crst_table_free(struct mm_struct *, unsigned long *);
unsigned long *page_table_alloc(struct mm_struct *); unsigned long *page_table_alloc(struct mm_struct *);
struct page *page_table_alloc_pgste(struct mm_struct *mm); struct page *page_table_alloc_pgste(struct mm_struct *mm);
void page_table_free(struct mm_struct *, unsigned long *); void page_table_free(struct mm_struct *, unsigned long *);
void page_table_free_rcu(struct mmu_gather *, unsigned long *, unsigned long);
void page_table_free_pgste(struct page *page); void page_table_free_pgste(struct page *page);
extern int page_table_allocate_pgste; extern int page_table_allocate_pgste;
......
...@@ -69,7 +69,9 @@ static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, ...@@ -69,7 +69,9 @@ static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
tlb->mm->context.flush_mm = 1; tlb->mm->context.flush_mm = 1;
tlb->freed_tables = 1; tlb->freed_tables = 1;
tlb->cleared_pmds = 1; tlb->cleared_pmds = 1;
page_table_free_rcu(tlb, (unsigned long *) pte, address); if (mm_alloc_pgste(tlb->mm))
gmap_unlink(tlb->mm, (unsigned long *)pte, address);
tlb_remove_ptdesc(tlb, pte);
} }
/* /*
......
...@@ -191,17 +191,6 @@ void page_table_free(struct mm_struct *mm, unsigned long *table) ...@@ -191,17 +191,6 @@ void page_table_free(struct mm_struct *mm, unsigned long *table)
pagetable_pte_dtor_free(ptdesc); pagetable_pte_dtor_free(ptdesc);
} }
void page_table_free_rcu(struct mmu_gather *tlb, unsigned long *table,
unsigned long vmaddr)
{
struct mm_struct *mm;
mm = tlb->mm;
if (mm_alloc_pgste(mm))
gmap_unlink(mm, table, vmaddr);
tlb_remove_ptdesc(tlb, table);
}
void __tlb_remove_table(void *table) void __tlb_remove_table(void *table)
{ {
struct ptdesc *ptdesc = virt_to_ptdesc(table); struct ptdesc *ptdesc = virt_to_ptdesc(table);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment