diff options
Diffstat (limited to 'arch/sparc64/mm/hugetlbpage.c')
| -rw-r--r-- | arch/sparc64/mm/hugetlbpage.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/sparc64/mm/hugetlbpage.c b/arch/sparc64/mm/hugetlbpage.c index 074620d413d4..fbbbebbad8a4 100644 --- a/arch/sparc64/mm/hugetlbpage.c +++ b/arch/sparc64/mm/hugetlbpage.c | |||
| @@ -198,6 +198,13 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr) | |||
| 198 | pmd_t *pmd; | 198 | pmd_t *pmd; |
| 199 | pte_t *pte = NULL; | 199 | pte_t *pte = NULL; |
| 200 | 200 | ||
| 201 | /* We must align the address, because our caller will run | ||
| 202 | * set_huge_pte_at() on whatever we return, which writes out | ||
| 203 | * all of the sub-ptes for the hugepage range. So we have | ||
| 204 | * to give it the first such sub-pte. | ||
| 205 | */ | ||
| 206 | addr &= HPAGE_MASK; | ||
| 207 | |||
| 201 | pgd = pgd_offset(mm, addr); | 208 | pgd = pgd_offset(mm, addr); |
| 202 | pud = pud_alloc(mm, pgd, addr); | 209 | pud = pud_alloc(mm, pgd, addr); |
| 203 | if (pud) { | 210 | if (pud) { |
