On Tue, Jul 16, 2019 at 09:18:07PM +0800, Herbert Xu wrote: > On Tue, Jul 16, 2019 at 03:15:20PM +0200, Peter Zijlstra wrote: > > > > > @@ -367,7 +368,7 @@ void padata_do_serial(struct padata_priv *padata) > > > struct parallel_data *pd; > > > int reorder_via_wq = 0; > > > > > > - pd = padata->pd; > > > + pd = rcu_dereference_bh(padata->inst->pd); > > > > > > cpu = get_cpu(); > > > > > > > That's weird for not having a matching assign and lacking comments to > > explain that. > > There is a matching rcu_assign_pointer. But we should add some > RCU markers. > > Or perhaps you're misreading the level of indirections :) Could well be, I'm not much familiar with this code; I'll look more careful.