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 |