From 02e790ee3077c0571794d0ab8f71413edbe129cc Mon Sep 17 00:00:00 2001 From: Alexander Gordeev Date: Fri, 3 Nov 2023 16:43:52 +0100 Subject: [PATCH] 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: Heiko Carstens Reviewed-by: Gerald Schaefer Signed-off-by: Alexander Gordeev Signed-off-by: Vasily Gorbik --- arch/s390/include/asm/pgalloc.h | 1 - arch/s390/include/asm/tlb.h | 4 +++- arch/s390/mm/pgalloc.c | 11 ----------- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/arch/s390/include/asm/pgalloc.h b/arch/s390/include/asm/pgalloc.h index 376b4b23bdaa3..502d655fe6ae6 100644 --- a/arch/s390/include/asm/pgalloc.h +++ b/arch/s390/include/asm/pgalloc.h @@ -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; diff --git a/arch/s390/include/asm/tlb.h b/arch/s390/include/asm/tlb.h index 3f0fec0a1e3c5..d1455a601adca 100644 --- a/arch/s390/include/asm/tlb.h +++ b/arch/s390/include/asm/tlb.h @@ -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); } /* diff --git a/arch/s390/mm/pgalloc.c b/arch/s390/mm/pgalloc.c index 8159f4fade3f5..008e487c94a63 100644 --- a/arch/s390/mm/pgalloc.c +++ b/arch/s390/mm/pgalloc.c @@ -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); -- 2.30.2