Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:follow_pud_mask

Proto:static struct page *follow_pud_mask(struct vm_area_struct *vma, unsigned long address, p4d_t *p4dp, unsigned int flags, struct follow_page_context *ctx)

Type:struct page

Parameter:

TypeParameterName
struct vm_area_struct *vma
unsigned longaddress
p4d_t *p4dp
unsigned intflags
struct follow_page_context *ctx
431  mm = The address space we belong to.
433  pud = pud_offset(p4dp, address)
434  If The "pud_xxx()" functions here are trivial for a folded two-level* setup: the pmd is never bad, and a pmd always exists (as it's folded* into the pud entry) Then Return no_page_table(vma, flags)
436  If pud_huge( * pud) && Flags, see mm.h. & Huge TLB Page VM Then
437  page = follow_huge_pud(mm, address, pud, flags)
438  If page Then Return page
440  Return no_page_table(vma, flags)
442  If is_hugepd(__hugepd(pud_val( * pud))) Then
443  page = follow_huge_pd(vma, address, __hugepd(pud_val( * pud)), flags, PUD_SHIFT)
446  If page Then Return page
448  Return no_page_table(vma, flags)
450  If pud_devmap( * pud) Then
451  ptl = pud_lock(mm, pud)
452  page = follow_devmap_pud(vma, address, pud, flags, & pgmap)
453  spin_unlock(ptl)
454  If page Then Return page
457  If Value for the false possibility is greater at compile time(pud_bad( * pud)) Then Return no_page_table(vma, flags)
460  Return follow_pmd_mask(vma, address, pud, flags, ctx)
Caller
NameDescribe
follow_p4d_mask