Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/tty/tty_ldsem.c __ldsem_wake() -> __ldsem_wake_readers()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->wait_lock.dep_map->name 0-255
PARAM_VALUE 0 sem->wait_lock.owner_cpu 0
PARAM_VALUE 0 sem->wait_lock.raw_lock.val.counter 0-s32max
PARAM_VALUE 0 sem->write_wait.next 4096-ptr_max
CAPPED_DATA 0 &sem->read_wait 1
CAPPED_DATA 0 &sem->write_wait 1
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 &sem->read_wait != $0->read_wait.next
PARAM_COMPARE 0 &sem->write_wait == $0->write_wait.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &sem->wait_lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct ld_semaphore)->wait_lock

drivers/tty/tty_ldsem.c down_write_failed() -> __ldsem_wake_readers()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->wait_lock.dep_map->name 0-255
PARAM_VALUE 0 sem->wait_lock.owner_cpu 0
PARAM_VALUE 0 sem->wait_lock.raw_lock.val.counter 0-s32max
PARAM_VALUE 0 sem->write_wait.next 4096-ptr_max
PARAM_VALUE 0 sem->write_wait.prev 1197945390870683648
PARAM_VALUE 0 sem->write_wait.prev->next 1197945390870683648
PARAM_VALUE 0 sem->write_wait.prev->next->next 4096-ptr_max
CAPPED_DATA 0 &sem->write_wait 1
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 &sem->write_wait == $0->write_wait.next
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 irq
LOCK2 0 &sem->wait_lock
TYPE_LOCK (struct ld_semaphore)->wait_lock