Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

mm/mremap.c prep_move_vma() -> (struct vm_operations_struct)->may_split()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_ops 4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->may_split 1-u64max
CONTAINER 0 -24-72+0 $(-1)
PARAM_COMPARE 1 addr != $0->vm_start
PARAM_COMPARE 1 addr != $0->vm_start
USER_DATA 1 addr 0-u64max
NO_OVERFLOW_SIMPLE 0 vma->vm_end
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mremap.c prep_move_vma() -> (struct vm_operations_struct)->may_split()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_ops 4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->may_split 1-u64max
CONTAINER 0 -24-72+0 $(-1)
NO_OVERFLOW_SIMPLE 0 vma->vm_end
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/vma.c __split_vma() -> (struct vm_operations_struct)->may_split()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
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_ops 4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->may_split 1-u64max
PARAM_VALUE 0 vma->vm_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->type 0-1
CAPPED_DATA 1 addr 1
CAPPED_DATA 1 addr 1
DATA_SOURCE 0 vma $1
DATA_SOURCE 1 addr $2
CONTAINER 0 -24-72+0 $(-1)
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vma->vm_pgoff 0-4503599627370495[c]
USER_DATA 0 vma->vm_start 1-u64max[c]
USER_DATA 1 addr 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

ipc/shm.c shm_may_split() -> (struct vm_operations_struct)->may_split()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
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_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->type 0-1
DATA_SOURCE 0 vma $0
DATA_SOURCE 1 addr $1
NOSPEC 0 vma->vm_start
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vma->vm_end 1-u64max[c]
USER_DATA 0 vma->vm_start 1-u64max[c]
USER_DATA 1 addr 0-u64max
NO_OVERFLOW_SIMPLE 0 vma->vm_policy->mode
HALF_LOCKED2 &mm->mmap_lock