1 // SPDX-License-Identifier: GPL-2.0 1 2 /* 3 * arch/sh/mm/hugetlbpage.c 4 * 5 * SuperH HugeTLB page support. 6 * 7 * Cloned from sparc64 by Paul Mundt. 8 * 9 * Copyright (C) 2002, 2003 David S. Miller (d 10 */ 11 12 #include <linux/init.h> 13 #include <linux/fs.h> 14 #include <linux/mm.h> 15 #include <linux/hugetlb.h> 16 #include <linux/pagemap.h> 17 #include <linux/sysctl.h> 18 19 #include <asm/mman.h> 20 #include <asm/tlb.h> 21 #include <asm/tlbflush.h> 22 #include <asm/cacheflush.h> 23 24 pte_t *huge_pte_alloc(struct mm_struct *mm, st 25 unsigned long addr, un 26 { 27 pgd_t *pgd; 28 p4d_t *p4d; 29 pud_t *pud; 30 pmd_t *pmd; 31 pte_t *pte = NULL; 32 33 pgd = pgd_offset(mm, addr); 34 if (pgd) { 35 p4d = p4d_alloc(mm, pgd, addr) 36 if (p4d) { 37 pud = pud_alloc(mm, p4 38 if (pud) { 39 pmd = pmd_allo 40 if (pmd) 41 pte = 42 } 43 } 44 } 45 46 return pte; 47 } 48 49 pte_t *huge_pte_offset(struct mm_struct *mm, 50 unsigned long addr, uns 51 { 52 pgd_t *pgd; 53 p4d_t *p4d; 54 pud_t *pud; 55 pmd_t *pmd; 56 pte_t *pte = NULL; 57 58 pgd = pgd_offset(mm, addr); 59 if (pgd) { 60 p4d = p4d_offset(pgd, addr); 61 if (p4d) { 62 pud = pud_offset(p4d, 63 if (pud) { 64 pmd = pmd_offs 65 if (pmd) 66 pte = 67 } 68 } 69 } 70 71 return pte; 72 } 73
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.