Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 30 files:

Smatch caller information:

kernel/fork.c mm_access() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
PARAM_VALUE 0 task->signal 4096-ptr_max
PARAM_VALUE 0 task->signal->exec_update_lock.dep_map->name 0-255
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->type 0-1
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.owner (-1)
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.owner_cpu u32max
DATA_SOURCE 0 task $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &task->signal->exec_update_lock
TYPE_LOCK (struct signal_struct)->exec_update_lock

mm/huge_memory.c split_huge_pages_pid() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task r find_get_task_by_vpid
LOCK2 &split_debug_mutex

kernel/tsacct.c xacct_add_tsk() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
PARAM_VALUE 0 task->delays 0,4096-ptr_max
PARAM_VALUE 0 task->delays->lock.dep_map->name 0-255
PARAM_VALUE 0 task->delays->lock.owner (-1)
PARAM_VALUE 0 task->delays->lock.owner_cpu 4294967295
PARAM_VALUE 0 task->group_leader 4096-ptr_max
PARAM_VALUE 0 task->real_cred 4096-ptr_max
PARAM_VALUE 0 task->signal->cgroup_threadgroup_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 task->signal->cgroup_threadgroup_rwsem.first_waiter->type 0-1
CAPPED_DATA 0 task->real_cred 1
DATA_SOURCE 0 task $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 task->exit_code 0,256-65280[c]
USER_DATA 0 task->signal->group_exit_code 0,256-65280[c]
NO_OVERFLOW_SIMPLE 0 task->delays->blkio_delay
NO_OVERFLOW_SIMPLE 0 task->delays->compact_delay
NO_OVERFLOW_SIMPLE 0 task->delays->freepages_delay
NO_OVERFLOW_SIMPLE 0 task->delays->irq_delay
NO_OVERFLOW_SIMPLE 0 task->delays->swapin_delay
NO_OVERFLOW_SIMPLE 0 task->delays->thrashing_delay
NO_OVERFLOW_SIMPLE 0 task->delays->wpcopy_delay

drivers/gpu/drm/i915/selftests/i915_selftest.c get_selftest_mm() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task r get_pid_task
BIT_INFO 0 task->flags 0x0,0xffdfffff
RX_PATH
TASK_NOT_RUNNING

drivers/vhost/vhost.c vhost_attach_mm() -> get_task_mm()

Type Parameter Key Value
HALF_LOCKED2 &n->dev.mutex
TYPE_LOCK (struct vhost_dev)->mutex

kernel/trace/trace_output.c trace_user_stack_print() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 1-u64max
DATA_SOURCE 0 task r find_task_by_vpid
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 flags
HALF_LOCKED2 global &tracepoint_iter_lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c kfd_sdma_activity_worker() -> get_task_mm()

Type Parameter Key Value
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c send_exception_work_handler() -> get_task_mm()

Type Parameter Key Value
HALF_LOCKED2 &pool->lock

fs/proc/base.c get_task_cmdline() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task $0

fs/proc/base.c map_files_get_link() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
PARAM_VALUE 0 task->alloc_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 task->signal 4096-ptr_max
PARAM_VALUE 0 task->signal->exec_update_lock.dep_map->name 0-255
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->type 0-1
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.owner (-1)
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.owner_cpu u32max
DATA_SOURCE 0 task $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &task->signal->exec_update_lock
TYPE_LOCK (struct signal_struct)->exec_update_lock

fs/proc/base.c proc_coredump_filter_read() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task r get_proc_task

fs/proc/base.c proc_coredump_filter_write() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task r get_proc_task

fs/proc/base.c proc_pid_ksm_merging_pages() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task $3
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/proc/base.c proc_pid_ksm_stat() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task $3
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

kernel/ptrace.c ptrace_access_vm() -> get_task_mm()

Type Parameter Key Value
DATA_SOURCE 0 task $0

mm/damon/vaddr.c damon_get_mm() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task r damon_get_task_struct
HALF_LOCKED2 &ctx->walk_control_lock

fs/proc/task_mmu.c clear_refs_write() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task r get_proc_task

mm/util.c get_cmdline() -> get_task_mm()

Type Parameter Key Value
DATA_SOURCE 0 task $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

fs/proc/array.c do_task_stat() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
PARAM_VALUE 0 task->alloc_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 task->signal 4096-ptr_max
PARAM_VALUE 0 task->signal->exec_update_lock.dep_map->name 0-255
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->type 0-1
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.owner (-1)
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.owner_cpu u32max
DATA_SOURCE 0 task $3
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
LOCK2 0 &task->signal->exec_update_lock
TYPE_LOCK (struct seq_file)->lock
TYPE_LOCK (struct signal_struct)->exec_update_lock

fs/proc/array.c proc_pid_statm() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task $3
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/proc/array.c proc_pid_status() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task $3
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

mm/memory.c access_process_vm() -> get_task_mm()

Type Parameter Key Value
DATA_SOURCE 0 task $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 task->dl.pi_se->dl_runtime

mm/memory.c copy_remote_vm_str() -> get_task_mm()

Type Parameter Key Value
DATA_SOURCE 0 task $0

kernel/cgroup/cpuset.c cpuset_attach_task() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
PARAM_VALUE 0 task->alloc_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 task->group_leader 4096-ptr_max
PARAM_VALUE 0 task->mempolicy 0,4096-ptr_max
PARAM_VALUE 0 task->mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 task->mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 task->on_rq 0-1,3-255
PARAM_VALUE 0 task->pi_lock.dep_map->name 0-255
PARAM_VALUE 0 task->pi_lock.owner (-1)
PARAM_VALUE 0 task->pi_lock.owner_cpu u32max
PARAM_VALUE 0 task->sched_class->balance 0,4895810773273071616,6490409225490120704,7260575883162300416,8638459336928428032
PARAM_VALUE 0 task->sched_class->dequeue_task 0,144070366336110592,1947835499009560576,6189267449403002880,6455432424639717376,6899636822736904192
PARAM_VALUE 0 task->sched_class->enqueue_task 0,126196709549080576,1834828045319467008,6555940243012698112,7779016139136778240
PARAM_VALUE 0 task->sched_class->find_lock_rq 0,1330506845949976576,2186316422496772096
PARAM_VALUE 0 task->sched_class->get_prio 0,5589494719909007360
PARAM_VALUE 0 task->sched_class->get_rr_interval 0,160577115725877248,8566262156424376320
PARAM_VALUE 0 task->sched_class->migrate_task_rq 0,1111187247153754112,4715741308934107136
PARAM_VALUE 0 task->sched_class->pick_task 0,431140902756892672,1158575681758597120,5720692379550740480,7102393387566546944,7601726578106748928
PARAM_VALUE 0 task->sched_class->prio_changed 0,1146300274019463168,2737281516638617600,4228469244769832960,6494577740674654208,7383617159121645568
PARAM_VALUE 0 task->sched_class->put_prev_task 0,879997059321819136,2104802920512651264,3309484659987406848,4521943768044347392,6061791611826737152
PARAM_VALUE 0 task->sched_class->reweight_task 0,5264859755264851968
PARAM_VALUE 0 task->sched_class->rq_offline 0,1273389266380275712,3746302679399247872,7992910395761221632
PARAM_VALUE 0 task->sched_class->rq_online 0,1603218695044562944,3838970304731508736,6105480162315575296
PARAM_VALUE 0 task->sched_class->select_task_rq 0,819017430815793152,1774144038744014848,2097362150474280960,8429637501012336640,8680431057181843456
PARAM_VALUE 0 task->sched_class->set_cpus_allowed 0,1927640468783054848,5094656021401329664,7127180339355369472
PARAM_VALUE 0 task->sched_class->set_next_task 0,2315212163512696832,4028699749262393344,4361835877848195072,6461874264613330944,8232387521787854848
PARAM_VALUE 0 task->sched_class->switched_from 0,6932178706407411712,8530452231382753280,8897597262779232256
PARAM_VALUE 0 task->sched_class->switched_to 0,5165838827171962880,5857971317054578688,7142770315824652288
PARAM_VALUE 0 task->sched_class->switching_from 0,2762873923526262784
PARAM_VALUE 0 task->sched_class->switching_to 0,1207858565835722752,6355784522873475072
PARAM_VALUE 0 task->sched_class->task_change_group 0,7251702690162270208
PARAM_VALUE 0 task->sched_class->task_dead 0,6742757381008068608
PARAM_VALUE 0 task->sched_class->task_fork 0,1181151505743122432,6092562452304658432
PARAM_VALUE 0 task->sched_class->task_is_throttled 0,626302238049026048,4879098428662644736,6508522699847725056
PARAM_VALUE 0 task->sched_class->task_tick 0,1093040616512942080,4602209053340655616,5021036204559331328,6268546278195412992,7031988722367209472
PARAM_VALUE 0 task->sched_class->task_woken 0,4090974917235912704,4284209241675612160
PARAM_VALUE 0 task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 0 task->sched_class->update_curr 0,2420086066110373888,2446272091500916736,2561397482238263296,2943871782664327168,8139140255186919424
PARAM_VALUE 0 task->sched_class->wakeup_preempt 0,1077039320164851712,1147033115188453376,2990157993661198336,6476960569952718848,6679893776262037504
PARAM_VALUE 0 task->sched_class->yield_task 0,2190573298372911104,3192817945493614592,3256919456170586112,7456815790656131072
PARAM_VALUE 0 task->sched_class->yield_to_task 0,3940359203731251200
CAPPED_DATA 0 task 1
CAPPED_DATA 0 task->group_leader 1
DATA_SOURCE 0 task $1
PARAM_COMPARE 0 task == $0->group_leader
PARAM_COMPARE 0 task == $0->group_leader
NOSPEC 0 task->thread.fsbase
NOSPEC 0 task->thread.gsbase
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 task->exit_signal 1-64[c]
USER_DATA 0 task->group_leader->thread.fsbase 0-u32max
USER_DATA 0 task->group_leader->thread.gsbase 0-u32max
USER_DATA 0 task->thread.fsbase 0-u32max
USER_DATA 0 task->thread.gsbase 0-u32max
LOCK2 global &cpuset_mutex

kernel/cgroup/cpuset.c cpuset_update_tasks_nodemask() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
PARAM_VALUE 0 task->alloc_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 task->exit_signal 0-s32max
PARAM_VALUE 0 task->mempolicy 0,4096-ptr_max
DATA_SOURCE 0 task r css_task_iter_next
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cpuset_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 global &cpuset_top_mutex

kernel/events/core.c perf_event_addr_filters_apply() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 0-18446744073709551614
UNITS 0 task unit_byte
HALF_LOCKED2 &event->child_mutex
HALF_LOCKED2 &event->child_mutex
TYPE_LOCK (struct perf_event)->child_mutex

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c kfd_ioctl_set_debug_trap() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task r get_pid_task

drivers/gpu/drm/nouveau/nouveau_svm.c nouveau_svmm_bind() -> get_task_mm()

Type Parameter Key Value

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c kfd_criu_checkpoint_svm() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
CAPPED_DATA 0 task 1
LOCK2 &p->mutex
TYPE_LOCK (struct kfd_process)->mutex

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c kfd_criu_resume_svm() -> get_task_mm()

Type Parameter Key Value
LOCK2 &p->mutex
TYPE_LOCK (struct kfd_process)->mutex

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_restore_work() -> get_task_mm()

Type Parameter Key Value
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_vram_node_new() -> get_task_mm()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mm->mmap_lock
LOCK2 &prange->migrate_mutex
LOCK2 &svms->lock
HALF_LOCKED2 &process_info->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range)->migrate_mutex
TYPE_LOCK (struct svm_range_list)->lock

kernel/sys.c getrusage() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
PARAM_VALUE 0 task->signal->prev_cputime.lock.dep_map->name 0-255
PARAM_VALUE 0 task->signal->prev_cputime.lock.owner (-1)
PARAM_VALUE 0 task->signal->prev_cputime.lock.owner_cpu u32max
PARAM_VALUE 0 task->signal->stats_lock.lock.rlock.dep_map->name 0-255
DATA_SOURCE 0 task $0
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c amdgpu_amdkfd_restore_userptr_worker() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task r get_pid_task
HALF_LOCKED2 &pool->lock

mm/mempolicy.c kernel_migrate_pages() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
PARAM_VALUE 0 task->alloc_lock.rlock.dep_map->name 0-255
CAPPED_DATA 0 task->cgroups 1

kernel/bpf/task_iter.c task_vma_seq_get_next() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
DATA_SOURCE 0 task r task_seq_get_next
RX_PATH
TASK_NOT_RUNNING
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock

mm/migrate.c find_mm_struct() -> get_task_mm()

Type Parameter Key Value
PARAM_VALUE 0 task 4096-ptr_max
PARAM_VALUE 0 task->alloc_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 task->signal 4096-ptr_max
PARAM_VALUE 0 task->signal->exec_update_lock.dep_map->name 0-255
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 task->signal->exec_update_lock.first_waiter->type 0-1
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.owner (-1)
PARAM_VALUE 0 task->signal->exec_update_lock.wait_lock.owner_cpu u32max
CAPPED_DATA 0 task->cgroups 1
DATA_SOURCE 0 task r find_get_task_by_vpid
LOCK2 0 &task->signal->exec_update_lock
TYPE_LOCK (struct signal_struct)->exec_update_lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager.c copy_context_work_handler() -> get_task_mm()

Type Parameter Key Value
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager.c restore_process_queues_nocpsch() -> get_task_mm()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dqm->lock_hidden
HALF_LOCKED2 &p->mutex
TYPE_LOCK (struct device_queue_manager)->lock_hidden