Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

kernel/rcu/tree.c __call_rcu_common() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags

kernel/rcu/tree.c nocb_gp_wait() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
LOCK2 flags
HALF_LOCKED2 &rdp->nocb_lock

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

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
PREEMPT_ADD
HALF_LOCKED2 bh

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

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
PREEMPT_ADD
LOCK2 flags
HALF_LOCKED2 &rdp->nocb_lock
HALF_LOCKED2 bh

kernel/rcu/tree.c rcu_init_nohz() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
LOCK2 irq

kernel/rcu/tree.c rcu_needs_cpu() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
PREEMPT_ADD
LOCK2 irq

kernel/rcu/tree.c rcutree_migrate_callbacks() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 global &rcu_state.barrier_lock
HALF_LOCKED2 global &cpuhp_state_mutex
HALF_LOCKED2 irq
TYPE_LOCK (struct rcu_state)->barrier_lock

kernel/rcu/tree.c rcutree_migrate_callbacks() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &my_rnp->lock
LOCK2 flags
HALF_LOCKED2 &my_rdp->nocb_lock
HALF_LOCKED2 global &cpuhp_state_mutex
HALF_LOCKED2 irq
TYPE_LOCK (struct rcu_node)->lock

kernel/rcu/tree.c rcutree_migrate_callbacks() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
PARAM_VALUE 0 rsclp->head 0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &my_rdp->nocb_lock
HALF_LOCKED2 global &cpuhp_state_mutex
HALF_LOCKED2 irq

kernel/rcu/rcu_segcblist.c rcu_segcblist_disable() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
PARAM_VALUE 0 rsclp->head 0
DATA_SOURCE 0 rsclp $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &my_rnp->lock
LOCK2 flags
HALF_LOCKED2 &my_rdp->nocb_lock
HALF_LOCKED2 global &cpuhp_state_mutex
HALF_LOCKED2 irq
TYPE_LOCK (struct rcu_node)->lock

kernel/rcu/srcutree.c srcu_torture_stats_print() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max

kernel/rcu/update.c call_rcu_tasks_generic() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &rtpcp->lock
LOCK2 flags
LOCK2 rcu_read
TYPE_LOCK (struct rcu_tasks_percpu)->lock

kernel/rcu/update.c call_rcu_tasks_generic() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &rtpcp->lock
LOCK2 flags
LOCK2 rcu_read
TYPE_LOCK (struct rcu_tasks_percpu)->lock

kernel/rcu/update.c call_rcu_tasks_generic_timer() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &rtpcp->lock
LOCK2 flags
TYPE_LOCK (struct rcu_tasks_percpu)->lock

kernel/rcu/update.c cblist_init_generic() -> rcu_segcblist_empty()

Type Parameter Key Value

kernel/rcu/update.c rcu_tasks_invoke_cbs() -> rcu_segcblist_empty()

Type Parameter Key Value
PARAM_VALUE 0 rsclp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &rtp->tasks_gp_mutex

kernel/rcu/update.c rcu_tasks_need_gpcb() -> rcu_segcblist_empty()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
LOCK2 &rtpcp->lock
LOCK2 flags
TYPE_LOCK (struct rcu_tasks_percpu)->lock

kernel/rcu/update.c show_rcu_tasks_generic_gp_kthread() -> rcu_segcblist_empty()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

kernel/rcu/update.c show_rcu_tasks_generic_gp_kthread() -> rcu_segcblist_empty()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING