Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\events\uprobes.c Create Date:2022-07-28 13:46:01
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:__create_xol_area

Proto:static struct xol_area *__create_xol_area(unsigned long vaddr)

Type:struct xol_area

Parameter:

TypeParameterName
unsigned longvaddr
1485  mm = mm
1486  insn = UPROBE_SWBP_INSN
1489  area = Allocation memory
1490  If Value for the false possibility is greater at compile time(!area) Then Go to out
1493  0 = free slot = kcalloc - allocate memory for an array. The memory is set to zero.*@n: number of elements.*@size: element size.*@flags: the type of memory to allocate (see kmalloc).
1495  If Not 0 = free slot Then Go to free_area
1498  The name, e.g. "[vdso]". = "[uprobes]"
1499  fault = NULL
1500  * If .fault is not provided, this points to a * NULL-terminated array of pages that back the special mapping. * This must not be NULL unless .fault is provided. = pages
1501  pages[0] = alloc_page(GFP_HIGHUSER)
1502  If Not pages[0] Then Go to free_bitmap
1504  pages[1] = NULL
1506  Page(s) of instruction slots = vaddr
1507  init_waitqueue_head( & all slots are busy )
1509  Atomically set a bit in memory
1510  atomic_set( & umber of in-use slots , 1)
1511  arch_uprobe_copy_ixol(pages[0], 0, & insn, UPROBE_SWBP_INSN_SIZE)
1513  If Not Slot allocation for XOL Then Return area
1516  __free_page(pages[0])
1517  free_bitmap :
1518  kfree(0 = free slot )
1519  free_area :
1520  kfree(area)
1521  out :
1522  Return NULL
Caller
NameDescribe
get_xol_areaget_xol_area - Allocate process's xol_area if necessary.* This area will be used for storing instructions for execution out of line.* Returns the allocated area or NULL.
dup_xol_work