Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\gup.c Create Date:2022-07-28 14:34:38
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:follow_p4d_mask

Proto:static struct page *follow_p4d_mask(struct vm_area_struct *vma, unsigned long address, pgd_t *pgdp, unsigned int flags, struct follow_page_context *ctx)

Type:struct page

Parameter:

TypeParameterName
struct vm_area_struct *vma
unsigned longaddress
pgd_t *pgdp
unsigned intflags
struct follow_page_context *ctx
471  p4d = p4d_offset(pgdp, address)
472  If The "p4d_xxx()" functions here are trivial for a folded two-level* setup: the pud is never bad, and a pud always exists (as it's folded* into the p4d entry) Then Return no_page_table(vma, flags)
474  BUILD_BUG_ON - break compile if a condition is true(p4d_huge( * p4d))
475  If Value for the false possibility is greater at compile time(p4d_bad( * p4d)) Then Return no_page_table(vma, flags)
478  If is_hugepd(__hugepd(p4d_val( * p4d))) Then
479  page = follow_huge_pd(vma, address, __hugepd(p4d_val( * p4d)), flags, P4D_SHIFT)
482  If page Then Return page
484  Return no_page_table(vma, flags)
486  Return follow_pud_mask(vma, address, p4d, flags, ctx)
Caller
NameDescribe
follow_page_maskllow_page_mask - look up a page descriptor from a user-virtual address*@vma: vm_area_struct mapping @address*@address: virtual address to look up*@flags: flags modifying lookup behaviour*@ctx: contains dev_pagemap for %ZONE_DEVICE memory pinning and a*