Skip to content

Commit

Permalink
riscv: Fix hugetlb_mask_last_page() when NAPOT is enabled
Browse files Browse the repository at this point in the history
When NAPOT is enabled, a new hugepage size is available and then we need
to make hugetlb_mask_last_page() aware of that.

Fixes: 82a1a1f ("riscv: mm: support Svnapot in hugetlb page")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Signed-off-by: Björn Töpel <bjorn@rivosinc.com>
  • Loading branch information
Alexandre Ghiti authored and Björn Töpel committed Jan 22, 2024
1 parent ba81c18 commit 191e2c6
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions arch/riscv/mm/hugetlbpage.c
Expand Up @@ -125,6 +125,26 @@ pte_t *huge_pte_offset(struct mm_struct *mm,
return pte;
}

unsigned long hugetlb_mask_last_page(struct hstate *h)
{
unsigned long hp_size = huge_page_size(h);

switch (hp_size) {
#ifndef __PAGETABLE_PMD_FOLDED
case PUD_SIZE:
return P4D_SIZE - PUD_SIZE;
#endif
case PMD_SIZE:
return PUD_SIZE - PMD_SIZE;
case napot_cont_size(NAPOT_CONT64KB_ORDER):
return PMD_SIZE - napot_cont_size(NAPOT_CONT64KB_ORDER);
default:
break;
}

return 0UL;
}

static pte_t get_clear_contig(struct mm_struct *mm,
unsigned long addr,
pte_t *ptep,
Expand Down

0 comments on commit 191e2c6

Please sign in to comment.