Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

ipc/shm.c __shm_close() -> shm_may_destroy()

Type Parameter Key Value
PARAM_VALUE 0 shp 4096-ptr_max
DATA_SOURCE 0 shp r shm_lock
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ipcp->lock
LOCK2 rcu_read

ipc/shm.c do_shmat() -> shm_may_destroy()

Type Parameter Key Value
PARAM_VALUE 0 shp 4096-ptr_max
DATA_SOURCE 0 shp r shm_lock
HALF_LOCKED2 &ipcp->lock
HALF_LOCKED2 rcu_read

ipc/shm.c exit_shm() -> shm_may_destroy()

Type Parameter Key Value
PARAM_VALUE 0 shp 4096-ptr_max
PARAM_VALUE 0 shp->ns 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
LOCK2 0 &shp->shm_perm.lock
TYPE_LOCK (struct kern_ipc_perm)->lock

ipc/shm.c shm_try_destroy_orphaned() -> shm_may_destroy()

Type Parameter Key Value
PARAM_VALUE 0 shp 4096-ptr_max
CAPPED_DATA 0 &shp->shm_clist 1
PARAM_COMPARE 0 &shp->shm_clist == $0->shm_clist.next
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
LOCK2 0 &shp->shm_perm.lock
HALF_LOCKED2 &ab->core_lock
HALF_LOCKED2 &ah->hw->wiphy->mtx
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &ar->data_lock
HALF_LOCKED2 &dev->object_name_lock
HALF_LOCKED2 &fpriv->lock
HALF_LOCKED2 &m->lock
HALF_LOCKED2 &s->lock
HALF_LOCKED2 bh
HALF_LOCKED2 global &device_mutex
HALF_LOCKED2 global &nbd_index_mutex
HALF_LOCKED2 global &pernet_ops_rwsem
HALF_LOCKED2 global &sg_index_lock
HALF_LOCKED2 iflags
TYPE_LOCK (struct kern_ipc_perm)->lock