Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

ipc/sem.c __do_semtimedop() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_nsems 1-s32max
PARAM_VALUE 0 sma->sem_perm.deleted 0
PARAM_VALUE 1 locknum (-1)-u16max
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
USER_DATA 1 locknum 0-u16max
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c __do_semtimedop() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->pending_const.prev 1773901177817903104
PARAM_VALUE 0 sma->pending_const.prev->next 1773901177817903104
PARAM_VALUE 0 sma->pending_const.prev->next->next 4096-ptr_max
PARAM_VALUE 0 sma->sem_nsems 1-s32max
PARAM_VALUE 0 sma->sem_perm.deleted 0
PARAM_VALUE 1 locknum (-1)-u16max
CAPPED_DATA 0 sma->sem_nsems 1
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
USER_DATA 1 locknum 0-u16max
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c __do_semtimedop() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_nsems 1-s32max
PARAM_VALUE 1 locknum (-1)-u16max
CAPPED_DATA 0 sma->sem_nsems 1
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
USER_DATA 1 locknum 0-u16max
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c exit_sem() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_perm.deleted 1
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
DATA_SOURCE 0 sma r sem_obtain_object_check
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c exit_sem() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_perm.deleted 0
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
DATA_SOURCE 0 sma r sem_obtain_object_check
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c exit_sem() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_perm.deleted 0
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
CAPPED_DATA 0 sma->sem_nsems 1
DATA_SOURCE 0 sma r sem_obtain_object_check
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c find_alloc_undo() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_perm.deleted 1
PARAM_VALUE 0 sma->sem_perm.rcu.func 1-u64max
PARAM_VALUE 0 sma->sem_perm.rcu.next 0
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c find_alloc_undo() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->list_id.next 4096-ptr_max
PARAM_VALUE 0 sma->list_id.next->next 4096-ptr_max
PARAM_VALUE 0 sma->list_id.next->prev 4096-ptr_max
PARAM_VALUE 0 sma->sem_perm.deleted 0
PARAM_VALUE 0 sma->sem_perm.rcu.func 1-u64max
PARAM_VALUE 0 sma->sem_perm.rcu.next 0
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c freeary() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_perm.deleted 1
PARAM_VALUE 1 locknum (-1)
CAPPED_DATA 0 sma->sem_nsems 1
CAPPED_DATA 0 &sma->list_id 1
CAPPED_DATA 0 &sma->pending_alter 1
CAPPED_DATA 0 &sma->pending_const 1
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &ids->rwsem
HALF_LOCKED2 &ipcp->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 sma

ipc/sem.c newary() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->complex_count 0
PARAM_VALUE 0 sma->list_id.next 4096-ptr_max
PARAM_VALUE 0 sma->list_id.next->next 4096-ptr_max
PARAM_VALUE 0 sma->list_id.prev 4096-ptr_max
PARAM_VALUE 0 sma->list_id.prev->next 4096-ptr_max
PARAM_VALUE 0 sma->list_id.prev->prev 4096-ptr_max
PARAM_VALUE 0 sma->pending_alter.next 4096-ptr_max
PARAM_VALUE 0 sma->pending_alter.next->next 4096-ptr_max
PARAM_VALUE 0 sma->pending_alter.prev 4096-ptr_max
PARAM_VALUE 0 sma->pending_alter.prev->next 4096-ptr_max
PARAM_VALUE 0 sma->pending_alter.prev->prev 4096-ptr_max
PARAM_VALUE 0 sma->pending_const.next 4096-ptr_max
PARAM_VALUE 0 sma->pending_const.next->next 4096-ptr_max
PARAM_VALUE 0 sma->pending_const.prev 4096-ptr_max
PARAM_VALUE 0 sma->pending_const.prev->next 4096-ptr_max
PARAM_VALUE 0 sma->pending_const.prev->prev 4096-ptr_max
PARAM_VALUE 0 sma->sem_nsems 1-16777213
PARAM_VALUE 0 sma->sem_perm.deleted 0
PARAM_VALUE 0 sma->sem_perm.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sma->sem_perm.mode 0-511
PARAM_VALUE 0 sma->sem_perm.refcount.refs.counter 1
PARAM_VALUE 0 sma->sem_perm.security 0,4096-ptr_max
PARAM_VALUE 0 sma->sem_perm.seq 0-u16max
PARAM_VALUE 0 sma->sems 4096-ptr_max
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
BUF_SIZE 0 sma 448-2147483584
BUF_SIZE 0 sma 448-2147483584
CAPPED_DATA 0 sma->sem_nsems 1
DATA_SOURCE 0 sma r sem_alloc
NOSPEC 0 sma->sem_nsems
NOCHECK_CALL
USER_DATA 0 sma->sem_nsems 1-16777213[c]
USER_DATA 0 sma->sem_perm.key s32min-s32max
USER_DATA 0 sma->sem_perm.mode 0-511[c]
LOCK2 &ids->rwsem
LOCK2 rcu_read
LOCK2 0 &sma->sem_perm.lock
TYPE_LOCK (struct ipc_ids)->rwsem
TYPE_LOCK (struct kern_ipc_perm)->lock

ipc/sem.c semctl_down() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c semctl_main() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_nsems 257-s32max
PARAM_VALUE 0 sma->sem_perm.deleted 0
PARAM_VALUE 0 sma->sem_perm.refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c semctl_main() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_perm.deleted 0
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
CAPPED_DATA 0 sma->sem_nsems 1
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c semctl_main() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c semctl_setval() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_nsems 1-s32max
PARAM_VALUE 0 sma->sem_perm.deleted 1
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma

ipc/sem.c semctl_setval() -> sem_unlock()

Type Parameter Key Value
PARAM_VALUE 0 sma 4096-ptr_max
PARAM_VALUE 0 sma->sem_nsems 1-s32max
PARAM_VALUE 0 sma->sem_perm.deleted 0
PARAM_VALUE 0 sma->sems 4096-ptr_max
PARAM_VALUE 0 sma->use_global_lock 10
PARAM_VALUE 1 locknum (-1)
CAPPED_DATA 0 &sma->list_id 1
DATA_SOURCE 0 sma r sem_obtain_object_check
NOCHECK_CALL
LOCK2 rcu_read
LOCK2 0 sma