函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\gup.c Create Date:2022-07-27 16:00:17
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:follow_pud_mask

函数原型: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)

返回类型:struct page

参数:

类型参数名称
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  如果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)则返回:no_page_table(vma, flags)
436  如果pud_huge( * pud)且Flags, see mm.h. 按位与Huge TLB Page VM
437  page等于follow_huge_pud(mm, address, pud, flags)
438  如果page则返回:page
440  返回:no_page_table(vma, flags)
442  如果is_hugepd(__hugepd(pud_val( * pud)))则
443  page等于follow_huge_pd(vma, address, __hugepd(pud_val( * pud)), flags, PUD_SHIFT)
446  如果page则返回:page
448  返回:no_page_table(vma, flags)
450  如果pud_devmap( * pud)则
451  ptl等于pud_lock(mm, pud)
452  page等于follow_devmap_pud(vma, address, pud, flags, & pgmap)
453  自旋锁解锁
454  如果page则返回:page
457  如果此条件成立可能性小(为编译器优化)(pud_bad( * pud))则返回:no_page_table(vma, flags)
460  返回:follow_pmd_mask(vma, address, pud, flags, ctx)
调用者
名称描述
follow_p4d_mask