Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

kernel/watch_queue.c __post_watch_notification() -> unlock_wqueue()

Type Parameter Key Value
PARAM_VALUE 0 wqueue 4096-ptr_max
PARAM_VALUE 0 wqueue->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 wqueue->pipe 4096-ptr_max
PARAM_VALUE 0 wqueue->pipe->ring_size 1-u32max
CAPPED_DATA 0 wqueue->nr_notes 1
CAPPED_DATA 0 wqueue->pipe->ring_size 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 bh
LOCK2 rcu_read
LOCK2 0 &wqueue->lock
HALF_LOCKED2 &key->sem
TYPE_LOCK (struct watch_queue)->lock

kernel/watch_queue.c add_watch_to_object() -> unlock_wqueue()

Type Parameter Key Value
PARAM_VALUE 0 wqueue 4096-ptr_max
PARAM_VALUE 0 wqueue->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 wqueue->pipe 1-u64max
CAPPED_DATA 0 wqueue 1
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &key->sem
LOCK2 bh
LOCK2 rcu_read
LOCK2 0 &wqueue->lock
TYPE_LOCK (struct key)->sem
TYPE_LOCK (struct watch_queue)->lock

kernel/watch_queue.c remove_watch_from_object() -> unlock_wqueue()

Type Parameter Key Value
PARAM_VALUE 0 wqueue 4096-ptr_max
PARAM_VALUE 0 wqueue->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 wqueue->pipe 4096-ptr_max
PARAM_VALUE 0 wqueue->pipe->ring_size 1-u32max
CAPPED_DATA 0 wqueue->nr_notes 1
CAPPED_DATA 0 wqueue->pipe->ring_size 1
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 bh
LOCK2 rcu_read
LOCK2 0 &wqueue->lock
HALF_LOCKED2 &key->sem
TYPE_LOCK (struct watch_queue)->lock