函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Like get_user_pages_fast() except it's IRQ-safe in that it won't fall back to* the regular GUP

函数原型:int __get_user_pages_fast(unsigned long start, int nr_pages, int write, struct page **pages)

返回类型:int

参数:

类型参数名称
unsigned longstart
intnr_pages
intwrite
struct page **pages
2339  nr等于0
2341  start等于Architectures that support memory tagging (assigning tags to memory regions,* embedding these tags into addresses that point to these memory regions, and* checking that the memory and the pointer tags match on memory accesses)(start)按位与PAGE_MASK
2342  len等于nr_pages左移PAGE_SHIFT determines the page size
2343  end等于startlen
2345  如果end小于等于start则返回:0
2347  如果此条件成立可能性小(为编译器优化)(!access_ok - Checks if a user space pointer is valid*@addr: User space pointer to start of block to check*@size: Size of block to check* Context: User context only. This function may sleep if pagefaults are* enabled.((void__user * )start, len))则返回:0
2362  如果IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_HAVE_FAST_GUP)且Check if it's allowed to use __get_user_pages_fast() for the range, or* we need to fall back to the slow version:
2364  local_irq_save(flags)
2365  gup_pgd_range(start, end, write ? check pte is writable : 0, pages, & nr)
2366  local_irq_restore(flags)
2369  返回:nr
调用者
名称描述
perf_virt_to_phys