s390/mm: make pte_free_tlb() similar to pXd_free_tlb()
authorAlexander Gordeev <agordeev@linux.ibm.com>
Fri, 3 Nov 2023 15:43:52 +0000 (16:43 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Sun, 5 Nov 2023 21:34:58 +0000 (22:34 +0100)
Make pte_free_tlb() look similar to pXd_free_tlb() family
functions.

Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Reviewed-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/pgalloc.h
arch/s390/include/asm/tlb.h
arch/s390/mm/pgalloc.c

index 376b4b2..502d655 100644 (file)
@@ -25,7 +25,6 @@ void crst_table_free(struct mm_struct *, unsigned long *);
 unsigned long *page_table_alloc(struct mm_struct *);
 struct page *page_table_alloc_pgste(struct mm_struct *mm);
 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);
 extern int page_table_allocate_pgste;
 
index 3f0fec0..d1455a6 100644 (file)
@@ -69,7 +69,9 @@ static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
        tlb->mm->context.flush_mm = 1;
        tlb->freed_tables = 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);
 }
 
 /*
index 8159f4f..008e487 100644 (file)
@@ -191,17 +191,6 @@ void page_table_free(struct mm_struct *mm, unsigned long *table)
        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)
 {
        struct ptdesc *ptdesc = virt_to_ptdesc(table);