mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
m68k: mm: Convert init_pointer_table() to use ptdescs
Motorola uses init_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-4-vishal.moola@gmail.com Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
This commit is contained in:
parent
5bea64689d
commit
66aebe56de
1 changed files with 6 additions and 6 deletions
|
@ -121,10 +121,10 @@ void __init init_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)) {
|
||||
PD_MARKBITS(dp) = ptable_mask(type);
|
||||
list_add(dp, &ptable_list[type]);
|
||||
|
@ -133,9 +133,9 @@ void __init init_pointer_table(void *table, int type)
|
|||
PD_MARKBITS(dp) &= ~mask;
|
||||
pr_debug("init_pointer_table: %lx, %x\n", ptable, PD_MARKBITS(dp));
|
||||
|
||||
/* unreserve the page so it's possible to free that page */
|
||||
__ClearPageReserved(PD_PAGE(dp));
|
||||
init_page_count(PD_PAGE(dp));
|
||||
/* unreserve the ptdesc so it's possible to free that ptdesc */
|
||||
__ClearPageReserved(ptdesc_page(PD_PTDESC(dp)));
|
||||
init_page_count(ptdesc_page(PD_PTDESC(dp)));
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue