Defined in 3 files as a function:

Referenced in 6 files:

Smatch caller information:

mm/mmap.c dup_mmap() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 0,4096-ptr_max
PARAM_VALUE 0 pol->refcnt.counter 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

fs/proc/task_mmu.c release_task_mempolicy() -> mpol_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &m->lock
HALF_LOCKED2 &priv->lock_ctx.mm->mmap_lock
TYPE_LOCK (struct seq_file)->lock

mm/shmem.c shmem_free_fc() -> mpol_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

mm/shmem.c shmem_parse_one() -> mpol_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fc->uapi_mutex

mm/shmem.c shmem_put_super() -> mpol_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sb->s_umount

mm/shmem.c shmem_reconfigure() -> mpol_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fc->uapi_mutex
HALF_LOCKED2 &sb->s_umount

mm/shmem.c shmem_show_options() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 0,4096-ptr_max
DATA_SOURCE 0 pol r shmem_get_sbmpol
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 global &namespace_sem

mm/vma.c __split_vma() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 0,4096-ptr_max
PARAM_VALUE 0 pol->refcnt.counter 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mm->mmap_lock

mm/vma.c copy_vma() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 0,4096-ptr_max
PARAM_VALUE 0 pol->refcnt.counter 1
NOCHECK_CALL
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/vma.c remove_vma() -> mpol_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mm->mmap_lock

mm/vma.c vma_complete() -> mpol_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &tsk->signal->exec_update_lock

mm/mempolicy.c __do_sys_set_mempolicy_home_node() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 4096-ptr_max
CAPPED_DATA 0 pol 1
DATA_SOURCE 0 pol r mpol_dup
NOCHECK_CALL
USER_DATA 0 pol->flags 0,24,8192-57368[c]
USER_DATA 0 pol->home_node 0-1023
USER_DATA 0 pol->mode 2-3,5-u16max
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mempolicy.c __do_sys_set_mempolicy_home_node() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 4096-ptr_max
CAPPED_DATA 0 pol 1
DATA_SOURCE 0 pol r mpol_dup
NOCHECK_CALL
USER_DATA 0 pol->flags 0,24,8192-57368[c]
USER_DATA 0 pol->home_node 0-1023
USER_DATA 0 pol->mode 2-3,5-u16max
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mempolicy.c do_get_mempolicy() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 4096-ptr_max
BUF_SIZE 0 pol (-1),288
BUF_SIZE 0 pol (-1),288
NOCHECK_CALL
USER_DATA 0 pol->flags 0,24,8192-57368[c]
USER_DATA 0 pol->home_node 0-1023
USER_DATA 0 pol->mode 2-3,5-u16max

mm/mempolicy.c do_mbind() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 0,4096-ptr_max
BUF_SIZE 0 pol (-1),288
BUF_SIZE 0 pol (-1),288
NOCHECK_CALL
USER_DATA 0 pol->flags 0,24,8192-57368[c]
NO_OVERFLOW_SIMPLE 0 pol->mode

mm/mempolicy.c do_set_mempolicy() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 0,4096-ptr_max
PARAM_VALUE 0 pol->flags 0,24,8192-57368
PARAM_VALUE 0 pol->home_node (-1)
PARAM_VALUE 0 pol->mode 1-u16max
PARAM_VALUE 0 pol->refcnt.counter 1
DATA_SOURCE 0 pol r mpol_new
NOCHECK_CALL
USER_DATA 0 pol->flags 0,24,8192-57368[c]
NO_OVERFLOW_SIMPLE 0 pol->mode

mm/mempolicy.c do_set_mempolicy() -> mpol_put()

Type Parameter Key Value
NOCHECK_CALL

mm/mempolicy.c mpol_put_task_policy() -> mpol_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &system_transition_mutex

mm/mempolicy.c mpol_shared_policy_init() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 0,4096-ptr_max
CAPPED_DATA 0 pol 1
DATA_SOURCE 0 pol r mpol_new
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 pol->mode
HALF_LOCKED2 &sb->s_umount

mm/mempolicy.c mpol_shared_policy_init() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 4096-ptr_max
DATA_SOURCE 0 pol $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sb->s_umount

mm/mempolicy.c shared_policy_replace() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 4096-ptr_max
PARAM_VALUE 0 pol->refcnt.counter 1
DATA_SOURCE 0 pol r kmem_cache_alloc_noprof
NOCHECK_CALL
HALF_LOCKED2 &mm->mmap_lock

mm/mempolicy.c sp_free() -> mpol_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 pol->flags 1,25,8193-57369[c]
USER_DATA 0 pol->home_node 0-1023
USER_DATA 0 pol->mode 2-3,5-u16max
HALF_LOCKED2 &sp->lock

mm/mempolicy.c vma_replace_policy() -> mpol_put()

Type Parameter Key Value
NOCHECK_CALL
USER_DATA 0 pol->flags 0,24,8192-57368[c]
USER_DATA 0 pol->home_node 0-1023
USER_DATA 0 pol->mode 2-3,5-u16max
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mempolicy.c vma_replace_policy() -> mpol_put()

Type Parameter Key Value
PARAM_VALUE 0 pol 0-ptr_max
PARAM_VALUE 0 pol->refcnt.counter 1
DATA_SOURCE 0 pol r mpol_dup
NOCHECK_CALL
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock