On Sat, Nov 02, 2019 at 12:45:55PM +0000, Lai Jiangshan wrote: > ->read_read_unlock_special.b.deferred_qs is set when > ->read_read_unlock_special is non-zero, and it is cleared when > ->read_read_unlock_special is cleared. > > So it is useless. > > Signed-off-by: Lai Jiangshan <laijs@xxxxxxxxxxxxxxxxx> I have queued this on -rcu for further review and testing, thank you! Thanx, Paul > --- > include/linux/sched.h | 2 +- > kernel/rcu/tree_plugin.h | 1 - > 2 files changed, 1 insertion(+), 2 deletions(-) > > diff --git a/include/linux/sched.h b/include/linux/sched.h > index 2c2e56bd8913..3ba392d71de9 100644 > --- a/include/linux/sched.h > +++ b/include/linux/sched.h > @@ -604,7 +604,7 @@ union rcu_special { > u8 blocked; > u8 need_qs; > u8 exp_hint; /* Hint for performance. */ > - u8 deferred_qs; > + u8 pad; /* No garbage from compiler! */ > } b; /* Bits. */ > u32 s; /* Set of bits. */ > }; > diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h > index 2fab8be2061f..f2fd7d687bdb 100644 > --- a/kernel/rcu/tree_plugin.h > +++ b/kernel/rcu/tree_plugin.h > @@ -622,7 +622,6 @@ static void rcu_read_unlock_special(struct task_struct *t) > irq_work_queue_on(&rdp->defer_qs_iw, rdp->cpu); > } > } > - t->rcu_read_unlock_special.b.deferred_qs = true; > local_irq_restore(flags); > return; > } > -- > 2.20.1 >