Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.2-rc6 75 lines 1.3 kB view raw
1// SPDX-License-Identifier: GPL-2.0 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 (davem@redhat.com) 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/pgalloc.h> 21#include <asm/tlb.h> 22#include <asm/tlbflush.h> 23#include <asm/cacheflush.h> 24 25pte_t *huge_pte_alloc(struct mm_struct *mm, 26 unsigned long addr, unsigned long sz) 27{ 28 pgd_t *pgd; 29 pud_t *pud; 30 pmd_t *pmd; 31 pte_t *pte = NULL; 32 33 pgd = pgd_offset(mm, addr); 34 if (pgd) { 35 pud = pud_alloc(mm, pgd, addr); 36 if (pud) { 37 pmd = pmd_alloc(mm, pud, addr); 38 if (pmd) 39 pte = pte_alloc_map(mm, pmd, addr); 40 } 41 } 42 43 return pte; 44} 45 46pte_t *huge_pte_offset(struct mm_struct *mm, 47 unsigned long addr, unsigned long sz) 48{ 49 pgd_t *pgd; 50 pud_t *pud; 51 pmd_t *pmd; 52 pte_t *pte = NULL; 53 54 pgd = pgd_offset(mm, addr); 55 if (pgd) { 56 pud = pud_offset(pgd, addr); 57 if (pud) { 58 pmd = pmd_offset(pud, addr); 59 if (pmd) 60 pte = pte_offset_map(pmd, addr); 61 } 62 } 63 64 return pte; 65} 66 67int pmd_huge(pmd_t pmd) 68{ 69 return 0; 70} 71 72int pud_huge(pud_t pud) 73{ 74 return 0; 75}