Defined in 1 files as a function:
Referenced in 4 files:
Smatch caller information:
ipc/util.c ipc_unlock() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 2-u64max |
| DATA_SOURCE | 0 | perm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &ids->rwsem | ||
| HALF_LOCKED2 | &s->lock | ||
| HALF_LOCKED2 | rcu_read |
ipc/sem.c sem_lock() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| NOCHECK_CALL | |||
| LOCK2 | &sem->lock | ||
| LOCK2 | &sma->sem_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock | ||
| TYPE_LOCK | (struct sem)->lock |
ipc/sem.c sem_unlock() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 0 | perm->key | s32min-s32max |
| USER_DATA | 0 | perm->mode | 0-511[c] |
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &ids->rwsem | ||
| HALF_LOCKED2 | &sma->sem_perm.lock | ||
| HALF_LOCKED2 | sma |
ipc/sem.c semctl_stat() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 1 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &sma->sem_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/sem.c semctl_stat() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &sma->sem_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c do_msgrcv() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c do_msgrcv() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c do_msgrcv() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c do_msgsnd() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PARAM_VALUE | 0 | perm->refcount.refs.counter | (-1073741824),0-s32max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c do_msgsnd() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c freeque() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 1 |
| PREEMPT_ADD | |||
| NOCHECK_CALL | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &ids->rwsem | ||
| HALF_LOCKED2 | &ipcp->lock | ||
| HALF_LOCKED2 | &msq->q_perm.lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c msgctl_down() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c msgctl_down() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c msgctl_stat() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 1 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c msgctl_stat() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/msg.c newque() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PARAM_VALUE | 0 | perm->mode | 0-511 |
| PARAM_VALUE | 0 | perm->refcount.refs.counter | 1 |
| PARAM_VALUE | 0 | perm->security | 0,4096-ptr_max |
| PARAM_VALUE | 0 | perm->seq | 0-u16max |
| NOCHECK_CALL | |||
| USER_DATA | 0 | perm->key | s32min-s32max |
| USER_DATA | 0 | perm->mode | 0-511[c] |
| LOCK2 | &ids->rwsem | ||
| LOCK2 | &msq->q_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct ipc_ids)->rwsem | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/shm.c do_shmat() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 1 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &shp->shm_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/shm.c do_shmat() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &shp->shm_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/shm.c ipc_unlock() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| DATA_SOURCE | 0 | perm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &ipcp->lock | ||
| HALF_LOCKED2 | &shp->shm_perm.lock | ||
| HALF_LOCKED2 | rcu_read |
ipc/shm.c newseg() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PARAM_VALUE | 0 | perm->mode | 0-511 |
| PARAM_VALUE | 0 | perm->refcount.refs.counter | 1 |
| PARAM_VALUE | 0 | perm->security | 0,4096-ptr_max |
| PARAM_VALUE | 0 | perm->seq | 0-u16max |
| NOCHECK_CALL | |||
| USER_DATA | 0 | perm->key | s32min-s32max |
| USER_DATA | 0 | perm->mode | 0-511[c] |
| LOCK2 | &ids->rwsem | ||
| LOCK2 | &shp->shm_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct ipc_ids)->rwsem | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/shm.c shm_lock() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 1 |
| PARAM_VALUE | 0 | perm->lock.rlock.dep_map->name | 0-255 |
| DATA_SOURCE | 0 | perm | r ipc_obtain_object_idr |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | rcu_read | ||
| LOCK2 | 0 | &perm->lock | |
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/shm.c shmctl_do_lock() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PARAM_VALUE | 0 | perm->mode | 0-64511 |
| NS_CAPABLE | 0 | 14 | |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &shp->shm_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/shm.c shmctl_do_lock() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &shp->shm_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/shm.c shmctl_down() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &shp->shm_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/shm.c shmctl_stat() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 1 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &shp->shm_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |
ipc/shm.c shmctl_stat() -> ipc_unlock_object()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | perm | 4096-ptr_max |
| PARAM_VALUE | 0 | perm->deleted | 0 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &shp->shm_perm.lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct kern_ipc_perm)->lock |