mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-05-24 10:39:52 +00:00
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 <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>
This commit is contained in:
parent
0031f1c7cf
commit
02e790ee30
3 changed files with 3 additions and 13 deletions
|
@ -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,
|
||||||
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)
|
||||||
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);
|
||||||
|
|
Loading…
Add table
Reference in a new issue