Re: [PATCH] padata: Use RCU when fetching pd from do_serial

From: Peter Zijlstra
Date: Tue Jul 16 2019 - 09:50:39 EST


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.