Defined in 1 files as a function:
Referenced in 2 files:
Smatch caller information:
kernel/locking/rtmutex_api.c mark_wakeup_next_waiter() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| DATA_SOURCE | 0 | lock | $1 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock |
kernel/locking/rtmutex_api.c remove_waiter() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.dep_map->name | 0-255 |
| BUF_SIZE | 0 | lock | (-1),96 |
| BUF_SIZE | 0 | lock | (-1),96 |
| CAPPED_DATA | 0 | lock | 1 |
| DATA_SOURCE | 0 | lock | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| LOCK2 | 0 | &lock->wait_lock | |
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq | ||
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock |
kernel/locking/rtmutex_api.c remove_waiter() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.dep_map->name | 0-255 |
| BUF_SIZE | 0 | lock | (-1),96 |
| BUF_SIZE | 0 | lock | (-1),96 |
| CAPPED_DATA | 0 | lock | 1 |
| DATA_SOURCE | 0 | lock | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| LOCK2 | &owner->pi_lock | ||
| LOCK2 | 0 | &lock->wait_lock | |
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq | ||
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock | ||
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/locking/rtmutex_api.c rt_mutex_adjust_prio_chain() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| RX_PATH | |||
| LOCK2 | &task->pi_lock | ||
| LOCK2 | irq | ||
| LOCK2 | 0 | &lock->wait_lock | |
| HALF_LOCKED2 | flags | ||
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock | ||
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/locking/rtmutex_api.c rt_mutex_adjust_prio_chain() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &task->pi_lock | ||
| LOCK2 | irq | ||
| LOCK2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock | ||
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/locking/rtmutex_api.c rt_mutex_adjust_prio_chain() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_left | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_right | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_root.rb_node | 4096-ptr_max |
| CAPPED_DATA | 0 | lock | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | irq | ||
| LOCK2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock |
kernel/locking/rtmutex_api.c rt_mutex_adjust_prio_chain() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_left | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_right | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_root.rb_node | 4096-ptr_max |
| CAPPED_DATA | 0 | lock | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &task->pi_lock | ||
| LOCK2 | irq | ||
| LOCK2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock | ||
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/locking/rtmutex_api.c rt_mutex_adjust_prio_chain() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_left | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_right | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_root.rb_node | 4096-ptr_max |
| CAPPED_DATA | 0 | lock | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &task->pi_lock | ||
| LOCK2 | irq | ||
| LOCK2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock | ||
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/locking/rtmutex_api.c rt_mutex_adjust_prio_chain() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_left | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_right | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_root.rb_node | 4096-ptr_max |
| CAPPED_DATA | 0 | lock | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &task->pi_lock | ||
| LOCK2 | irq | ||
| LOCK2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock | ||
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/locking/rtmutex_api.c rt_mutex_slowlock_block() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| BUF_SIZE | 0 | lock | (-1),96 |
| BUF_SIZE | 0 | lock | (-1),96 |
| CAPPED_DATA | 0 | lock | 1 |
| DATA_SOURCE | 0 | lock | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| LOCK2 | 0 | &lock->wait_lock | |
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq | ||
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock |
kernel/locking/rtmutex_api.c task_blocks_on_rt_mutex() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| CAPPED_DATA | 0 | lock | 1 |
| DATA_SOURCE | 0 | lock | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| LOCK2 | &task->pi_lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock | ||
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/locking/rtmutex_api.c task_blocks_on_rt_mutex() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_left | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_leftmost->rb_right | 0 |
| PARAM_VALUE | 0 | lock->waiters.rb_root.rb_node | 4096-ptr_max |
| CAPPED_DATA | 0 | lock | 1 |
| DATA_SOURCE | 0 | lock | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| LOCK2 | &owner->pi_lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock | ||
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/locking/rtmutex_api.c try_to_take_rt_mutex() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | lock->wait_lock.owner_cpu | 0 |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| BUF_SIZE | 0 | lock | (-1),96 |
| BUF_SIZE | 0 | lock | (-1),96 |
| CAPPED_DATA | 0 | lock | 1 |
| DATA_SOURCE | 0 | lock | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| LOCK2 | 0 | &lock->wait_lock | |
| HALF_LOCKED2 | irq | ||
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock |
kernel/locking/rtmutex_api.c try_to_take_rt_mutex() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| CAPPED_DATA | 0 | lock | 1 |
| DATA_SOURCE | 0 | lock | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock |
kernel/locking/rtmutex_api.c try_to_take_rt_mutex() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| BUF_SIZE | 0 | lock | (-1),96 |
| BUF_SIZE | 0 | lock | (-1),96 |
| CAPPED_DATA | 0 | lock | 1 |
| DATA_SOURCE | 0 | lock | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &task->pi_lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | 0 | &lock->wait_lock | |
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock | ||
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/futex/pi.c __futex_unlock_pi() -> rt_mutex_top_waiter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->wait_lock.raw_lock.val.counter | 0-s32max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| LOCK2 | &hb->lock | ||
| LOCK2 | &pi_state->pi_mutex.wait_lock | ||
| LOCK2 | irq | ||
| TYPE_LOCK | (struct futex_hash_bucket)->lock | ||
| TYPE_LOCK | (struct rt_mutex_base)->wait_lock |