diff options
-rw-r--r-- | kernel/rcutree_plugin.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h index 70b33bf780f..df47014e129 100644 --- a/kernel/rcutree_plugin.h +++ b/kernel/rcutree_plugin.h | |||
@@ -422,9 +422,11 @@ static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp) | |||
422 | unsigned long flags; | 422 | unsigned long flags; |
423 | struct task_struct *t; | 423 | struct task_struct *t; |
424 | 424 | ||
425 | if (!rcu_preempt_blocked_readers_cgp(rnp)) | ||
426 | return; | ||
427 | raw_spin_lock_irqsave(&rnp->lock, flags); | 425 | raw_spin_lock_irqsave(&rnp->lock, flags); |
426 | if (!rcu_preempt_blocked_readers_cgp(rnp)) { | ||
427 | raw_spin_unlock_irqrestore(&rnp->lock, flags); | ||
428 | return; | ||
429 | } | ||
428 | t = list_entry(rnp->gp_tasks, | 430 | t = list_entry(rnp->gp_tasks, |
429 | struct task_struct, rcu_node_entry); | 431 | struct task_struct, rcu_node_entry); |
430 | list_for_each_entry_continue(t, &rnp->blkd_tasks, rcu_node_entry) | 432 | list_for_each_entry_continue(t, &rnp->blkd_tasks, rcu_node_entry) |