Defined in 2 files as a function:

Referenced in 5 files:

Smatch caller information:

mm/mmap.c expand_stack() -> mmap_write_downgrade()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
BUF_SIZE 0 mm s32min-(-1),1-s32max
BUF_SIZE 0 mm s32min-(-1),1-s32max
DATA_SOURCE 0 mm $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mmap.c mmap_read_lock_maybe_expand() -> mmap_write_downgrade()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->map_count (-1)-s32max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->stack_vm 1
PARAM_VALUE 0 mm->total_vm 1
DATA_SOURCE 0 mm $0
NOCHECK_CALL
LOCK2 0 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/vma.c vms_complete_munmap_vmas() -> mmap_write_downgrade()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_restore_pages() -> mmap_write_downgrade()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->notifier_subscriptions->has_itree 0-1
DATA_SOURCE 0 mm r get_task_mm
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &svms->lock
LOCK2 0 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_restore_pages() -> mmap_write_downgrade()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->notifier_subscriptions->has_itree 0-1
DATA_SOURCE 0 mm r get_task_mm
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &svms->lock
LOCK2 0 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_restore_pages() -> mmap_write_downgrade()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->notifier_subscriptions->has_itree 0-1
DATA_SOURCE 0 mm r get_task_mm
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &svms->lock
LOCK2 0 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_set_attr() -> mmap_write_downgrade()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
DATA_SOURCE 0 mm $1
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 &process_info->lock
LOCK2 &svms->lock
LOCK2 0 &mm->mmap_lock
HALF_LOCKED2 &p->mutex
TYPE_LOCK (struct amdkfd_process_info)->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range_list)->lock

mm/mmap_lock.c lock_mm_and_find_vma() -> mmap_write_downgrade()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_mt.ma_root 1-u64max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
CAPPED_DATA 0 mm 1
CAPPED_DATA 0 mm->mm_mt.ma_root 1
DATA_SOURCE 0 mm $0
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 0 &mm->mmap_lock