Subject: Re: [PATCH] netpoll: use non-BH variant of RCU

From: "John W. Linville" <[email-masked]>
Date: Wed, 11 Aug 2010 11:37:36 -0400

On Wed, Aug 11, 2010 at 07:27:06AM -0400, Herbert Xu wrote:
> On Wed, Aug 11, 2010 at 07:03:30AM -0400, Herbert Xu wrote:
> >
> > To use rcu_read_lock safely we'd also need to add do synchronize_rcu
> > in addition of synchronize_rcu_bh, right Paul?
> > 
> > Of course as we were doing this unsafely prior to my patch anyway
> > I'm also fine with just reverting it.
> 
> Actually, we could just disable IRQs for stable.  How about this
> patch (untested)?
> 
> netpoll: Disable IRQ around RCU dereference in netpoll_rx
> 
> We cannot use rcu_dereference_bh safely in netpoll_rx as we may
> be called with IRQs disabled.  We could however simply disable
> IRQs as that too causes BH to be disabled and is safe in either
> case.
> 
> Thanks to John Linville for discovering this bug and providing
> a patch.
> 
> Signed-off-by: Herbert Xu <[email-masked]>

This also seems to work for me.

John

P.S.  As pointed-out elsewhere, my patch neglected to change
synchronize_rcu_bh to synchronize_rcu in netpoll.c.  If some fault
is found w/ Herbert's patch then I can post a modified version of mine.
-- 
John W. Linville		Someday the world will need a hero, and you
[email-masked]			might be all we have.  Be ready.