diff options
| author | Vishal Moola (Oracle) <vishal.moola@gmail.com> | 2025-06-10 17:12:53 -0700 |
|---|---|---|
| committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2025-06-30 21:20:17 +0200 |
| commit | 5bea64689d9f96eff16438273b8576367aa7ba05 (patch) | |
| tree | 77dfdd7b16672490088ac077ed977b6863644a4b | |
| parent | 72fe6dafaa6163696ab8225f32d0297dcf661bdf (diff) | |
m68k: mm: Convert free_pointer_table() to use ptdescs
Motorola uses free_pointer_table() for page tables, so it should be using
struct ptdesc, not struct page.
This helps us prepare to allocate ptdescs as their own memory
descriptor, and prepares to remove a user of page->lru.
Signed-off-by: "Vishal Moola (Oracle)" <vishal.moola@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/20250611001255.527952-3-vishal.moola@gmail.com
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
| -rw-r--r-- | arch/m68k/mm/motorola.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c index 8d54c1a7eaf5..6d655ef349b4 100644 --- a/arch/m68k/mm/motorola.c +++ b/arch/m68k/mm/motorola.c @@ -202,21 +202,20 @@ int free_pointer_table(void *table, int type) { ptable_desc *dp; unsigned long ptable = (unsigned long)table; - unsigned long page = ptable & PAGE_MASK; - unsigned int mask = 1U << ((ptable - page)/ptable_size(type)); + unsigned long pt_addr = ptable & PAGE_MASK; + unsigned int mask = 1U << ((ptable - pt_addr)/ptable_size(type)); - dp = PD_PTABLE(page); + dp = PD_PTABLE(pt_addr); if (PD_MARKBITS (dp) & mask) panic ("table already free!"); PD_MARKBITS (dp) |= mask; if (PD_MARKBITS(dp) == ptable_mask(type)) { - /* all tables in page are free, free page */ + /* all tables in ptdesc are free, free ptdesc */ list_del(dp); - mmu_page_dtor((void *)page); - pagetable_dtor(virt_to_ptdesc((void *)page)); - free_page (page); + mmu_page_dtor((void *)pt_addr); + pagetable_dtor_free(virt_to_ptdesc((void *)pt_addr)); return 1; } else if (ptable_list[type].next != dp) { /* |