Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 0 additions & 14 deletions arch/arm64/mm/mmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1775,20 +1775,6 @@ static void free_empty_tables(unsigned long addr, unsigned long end,
}
#endif

void __meminit vmemmap_set_pmd(pmd_t *pmdp, void *p, int node,
unsigned long addr, unsigned long next)
{
pmd_set_huge(pmdp, __pa(p), __pgprot(PROT_SECT_NORMAL));
}

int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node,
unsigned long addr, unsigned long next)
{
vmemmap_verify((pte_t *)pmdp, node, addr, next);

return pmd_leaf(READ_ONCE(*pmdp));
}

int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node,
struct vmem_altmap *altmap)
{
Expand Down
11 changes: 0 additions & 11 deletions arch/loongarch/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -143,17 +143,6 @@ void __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node,
set_pmd_at(&init_mm, addr, pmd, entry);
}

int __meminit vmemmap_check_pmd(pmd_t *pmd, int node,
unsigned long addr, unsigned long next)
{
int huge = pmd_val(pmdp_get(pmd)) & _PAGE_HUGE;

if (huge)
vmemmap_verify((pte_t *)pmd, node, addr, next);

return huge;
}

int __meminit vmemmap_populate(unsigned long start, unsigned long end,
int node, struct vmem_altmap *altmap)
{
Expand Down
13 changes: 0 additions & 13 deletions arch/riscv/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -1359,19 +1359,6 @@ void __init misc_mem_init(void)
}

#ifdef CONFIG_SPARSEMEM_VMEMMAP
void __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node,
unsigned long addr, unsigned long next)
{
pmd_set_huge(pmd, virt_to_phys(p), PAGE_KERNEL);
}

int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node,
unsigned long addr, unsigned long next)
{
vmemmap_verify((pte_t *)pmdp, node, addr, next);
return 1;
}

int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node,
struct vmem_altmap *altmap)
{
Expand Down
11 changes: 0 additions & 11 deletions arch/sparc/mm/init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -2579,17 +2579,6 @@ void __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node,
pmd_val(*pmd) = pte_base | __pa(p);
}

int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node,
unsigned long addr, unsigned long next)
{
int large = pmd_leaf(*pmdp);

if (large)
vmemmap_verify((pte_t *)pmdp, node, addr, next);

return large;
}

int __meminit vmemmap_populate(unsigned long vstart, unsigned long vend,
int node, struct vmem_altmap *altmap)
{
Expand Down
7 changes: 6 additions & 1 deletion mm/sparse-vmemmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -391,12 +391,17 @@ int __meminit vmemmap_populate_hvo(unsigned long addr, unsigned long end,
void __weak __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node,
unsigned long addr, unsigned long next)
{
WARN_ON_ONCE(!pmd_set_huge(pmd, virt_to_phys(p), PAGE_KERNEL));
}

int __weak __meminit vmemmap_check_pmd(pmd_t *pmd, int node,
unsigned long addr, unsigned long next)
{
return 0;
if (!pmd_leaf(pmdp_get(pmd)))
return 0;
vmemmap_verify((pte_t *)pmd, node, addr, next);

return 1;
}

int __meminit vmemmap_populate_hugepages(unsigned long start, unsigned long end,
Expand Down
Loading