On Fri, Sep 28, 2018 at 12:02 PM Cong Wang <xiyou.wangc...@gmail.com> wrote: > > On Fri, Sep 28, 2018 at 11:26 AM Dave Jones <da...@codemonkey.org.uk> wrote: > > diff --git a/net/core/netpoll.c b/net/core/netpoll.c > > index 3219a2932463..4f9494381635 100644 > > --- a/net/core/netpoll.c > > +++ b/net/core/netpoll.c > > @@ -330,6 +330,7 @@ void netpoll_send_skb_on_dev(struct netpoll *np, struct > > sk_buff *skb, > > /* It is up to the caller to keep npinfo alive. */ > > struct netpoll_info *npinfo; > > > > + rcu_read_lock(); > > lockdep_assert_irqs_disabled(); > > > > npinfo = rcu_dereference_bh(np->dev->npinfo); > > I think you probably need rcu_read_lock_bh() to satisfy > rcu_deference_bh()...
But irq is disabled here, so not sure if rcu_read_lock_bh() could cause trouble... Interesting...