|
@@ -422,9 +422,11 @@ static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp)
|
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
struct task_struct *t;
|
|
struct task_struct *t;
|
|
|
|
|
|
|
|
- if (!rcu_preempt_blocked_readers_cgp(rnp))
|
|
|
|
|
- return;
|
|
|
|
|
raw_spin_lock_irqsave(&rnp->lock, flags);
|
|
raw_spin_lock_irqsave(&rnp->lock, flags);
|
|
|
|
|
+ if (!rcu_preempt_blocked_readers_cgp(rnp)) {
|
|
|
|
|
+ raw_spin_unlock_irqrestore(&rnp->lock, flags);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
t = list_entry(rnp->gp_tasks,
|
|
t = list_entry(rnp->gp_tasks,
|
|
|
struct task_struct, rcu_node_entry);
|
|
struct task_struct, rcu_node_entry);
|
|
|
list_for_each_entry_continue(t, &rnp->blkd_tasks, rcu_node_entry)
|
|
list_for_each_entry_continue(t, &rnp->blkd_tasks, rcu_node_entry)
|