Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

mm/huge_memory.c do_huge_pmd_wp_page() -> maybe_pmd_mkwrite()

Type Parameter Key Value
PARAM_VALUE 1 vma 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 vmf->ptl
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/huge_memory.c insert_pmd() -> maybe_pmd_mkwrite()

Type Parameter Key Value
PARAM_VALUE 1 vma 4096-ptr_max
BUF_SIZE 1 vma (-1),4,24,64,168-s32max
BUF_SIZE 1 vma (-1),4,24,64,168-s32max
CAPPED_DATA 1 vma->vm_start 1
DATA_SOURCE 1 vma $0
PARAM_COMPARE 1 vma->vm_end > $1->vm_start
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 vma->vm_end
NO_OVERFLOW_SIMPLE 1 vma->vm_pgoff
NO_OVERFLOW_SIMPLE 1 vma->vm_start

mm/huge_memory.c insert_pmd() -> maybe_pmd_mkwrite()

Type Parameter Key Value
PARAM_VALUE 1 vma 4096-ptr_max
BUF_SIZE 1 vma (-1),4,24,64,168-s32max
BUF_SIZE 1 vma (-1),4,24,64,168-s32max
CAPPED_DATA 1 vma->vm_start 1
DATA_SOURCE 0 pmd r pmd_mkyoung
DATA_SOURCE 1 vma $0
PARAM_COMPARE 1 vma->vm_end > $1->vm_start
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 vma->vm_end
NO_OVERFLOW_SIMPLE 1 vma->vm_pgoff
NO_OVERFLOW_SIMPLE 1 vma->vm_start

mm/huge_memory.c map_anon_folio_pmd_nopf() -> maybe_pmd_mkwrite()

Type Parameter Key Value
PARAM_VALUE 1 vma 4096-ptr_max
BUF_SIZE 1 vma (-1),4,24,64,168-s32max
BUF_SIZE 1 vma (-1),4,24,64,168-s32max
DATA_SOURCE 1 vma $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 vma->vm_pgoff
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 pmd_ptl

mm/memory.c do_set_pmd() -> maybe_pmd_mkwrite()

Type Parameter Key Value
PARAM_VALUE 1 vma 4096-ptr_max
BUF_SIZE 1 vma (-1),4,24,64,168-s32max
BUF_SIZE 1 vma (-1),4,24,64,168-s32max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 vma->vm_end
NO_OVERFLOW_SIMPLE 1 vma->vm_pgoff
NO_OVERFLOW_SIMPLE 1 vma->vm_start
HALF_LOCKED2 rcu_read