Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 1 files:

Smatch caller information:

mm/madvise.c madvise_dontneed_free() -> userfaultfd_remove()

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 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
PARAM_COMPARE 1 start != $2
PARAM_COMPARE 2 end != $1
PARAM_COMPARE 2 end != $1
NOSPEC 2 end
NOSPEC 2 end
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 start 0-u64max
USER_DATA 2 end 0-u64max
UNITS 1 start unit_byte
UNITS 2 end unit_byte
HALF_LOCKED2 &madv_behavior->mm->mmap_lock

mm/madvise.c madvise_remove() -> userfaultfd_remove()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_file 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_mapping 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_mapping->host 1-u64max
BIT_INFO 0 vma->vm_flags 0x0,0xffffffffffffdfff
NOSPEC 2 end
NOSPEC 2 end
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 start 0-u64max
USER_DATA 2 end 0-u64max
UNITS 1 start unit_byte
UNITS 2 end unit_byte
HALF_LOCKED2 &madv_behavior->mm->mmap_lock