Defined in 3 files as a prototype:

Defined in 7 files as a function:

Referenced in 2 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->anon_vma 1-u64max
PARAM_VALUE 0 vma->vm_ops 0
PARAM_VALUE 1 address 0,2097152-u64max
PARAM_VALUE 2 pmdp 4096-ptr_max
PARAM_VALUE 4 dirty 1
DATA_SOURCE 3 entry r maybe_pmd_mkwrite
BIT_INFO 1 address 0x0,0xffffffffffe00000
BIT_INFO 1 address 0x0,0xffffffffffe00000
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 address 0,2097152-u64max[c]
LOCK2 vmf->ptl
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

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

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_end 1-u64max
PARAM_VALUE 1 address 0,2097152-18446744073709551614
PARAM_VALUE 2 pmdp 4096-ptr_max
PARAM_VALUE 4 dirty 1
BUF_SIZE 0 vma (-1),4,24,64,168-s32max
BUF_SIZE 0 vma (-1),4,24,64,168-s32max
CAPPED_DATA 0 vma->vm_start 1
CAPPED_DATA 1 address 1
CAPPED_DATA 1 address 1
DATA_SOURCE 0 vma $0
DATA_SOURCE 1 address $1
DATA_SOURCE 2 pmdp $2
DATA_SOURCE 3 entry r maybe_pmd_mkwrite
PARAM_COMPARE 0 vma->vm_end > $0->vm_start
PARAM_COMPARE 1 address < $0->vm_end
PARAM_COMPARE 1 address < $0->vm_end
PARAM_COMPARE 1 address >= $0->vm_start
PARAM_COMPARE 1 address >= $0->vm_start
BIT_INFO 1 address 0x0,0xffffffffffe00000
BIT_INFO 1 address 0x0,0xffffffffffe00000
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 address 0,2097152-s32max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_pgoff
NO_OVERFLOW_SIMPLE 0 vma->vm_start
UNITS 1 address unit_byte

mm/huge_memory.c touch_pmd() -> pmdp_set_access_flags()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_inode->i_mapping->invalidate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_inode->i_mapping->invalidate_lock.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->invalidate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->invalidate_lock.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 address 0,2097152-u64max
PARAM_VALUE 2 pmdp 4096-ptr_max
DATA_SOURCE 0 vma $0
DATA_SOURCE 2 pmdp $2
DATA_SOURCE 4 dirty $3
BIT_INFO 1 address 0x0,0xffffffffffe00000
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 address 0,2097152-u64max[c]
USER_DATA 4 dirty 0-1[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_file->f_mapping->host->i_size
HALF_LOCKED2 &mm->mmap_lock

mm/debug_vm_pgtable.c pmd_advanced_tests() -> pmdp_set_access_flags()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 1 address 0
PARAM_VALUE 2 pmdp 4096-ptr_max
PARAM_VALUE 4 dirty 1
DATA_SOURCE 3 entry r pmd_mkdirty
PREEMPT_ADD
NOCHECK_CALL