Defined in 2 files as a function:

Referenced in 4 files:

Smatch caller information:

kernel/rcu/tree.c rcu_barrier_entrain() -> debug_rcu_head_unqueue()

Type Parameter Key Value
PARAM_VALUE 0 head 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &rcu_state.barrier_lock
HALF_LOCKED2 &rdp->nocb_lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &rcu_state.barrier_mutex
TYPE_LOCK (struct rcu_state)->barrier_lock

kernel/rcu/tree.c rcu_do_batch() -> debug_rcu_head_unqueue()

Type Parameter Key Value
DATA_SOURCE 0 head r rcu_cblist_dequeue
PREEMPT_ADD
NOCHECK_CALL
HALF_LOCKED2 bh

mm/slab_common.c debug_rcu_bhead_unqueue() -> debug_rcu_head_unqueue()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

mm/slab_common.c kvfree_call_rcu() -> debug_rcu_head_unqueue()

Type Parameter Key Value
DATA_SOURCE 0 head $1
NOCHECK_CALL

mm/slab_common.c kvfree_rcu_list() -> debug_rcu_head_unqueue()

Type Parameter Key Value
DATA_SOURCE 0 head r kvmalloc_obj_start_addr
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

kernel/rcu/srcutree.c srcu_barrier_one_cpu() -> debug_rcu_head_unqueue()

Type Parameter Key Value
PARAM_VALUE 0 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sdp->lock
LOCK2 &ssp->srcu_sup->srcu_barrier_mutex
LOCK2 irq
TYPE_LOCK (struct srcu_data)->lock
TYPE_LOCK (struct srcu_usage)->srcu_barrier_mutex

kernel/rcu/srcutree.c srcu_invoke_callbacks() -> debug_rcu_head_unqueue()

Type Parameter Key Value
DATA_SOURCE 0 head r rcu_cblist_dequeue
NOCHECK_CALL
HALF_LOCKED2 &pool->lock