net/core: Replace call_rcu_bh() and synchronize_rcu_bh()
authorPaul E. McKenney <paulmck@linux.ibm.com>
Wed, 7 Nov 2018 03:43:32 +0000 (19:43 -0800)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Sat, 1 Dec 2018 20:38:47 +0000 (12:38 -0800)
Now that call_rcu()'s callback is not invoked until after all bh-disable
regions of code have completed (in addition to explicitly marked
RCU read-side critical sections), call_rcu() can be used in place of
call_rcu_bh().  Similarly, synchronize_rcu() can be used in place of
synchronize_rcu_bh().  This commit therefore makes these changes.

Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: <netdev@vger.kernel.org>
net/core/netpoll.c

index 5da9552b186bc853904f7c85bbf872925463896c..677d3f332172b3780f2ef6fe7baf9041ee6910d7 100644 (file)
@@ -800,7 +800,7 @@ void __netpoll_cleanup(struct netpoll *np)
                        ops->ndo_netpoll_cleanup(np->dev);
 
                RCU_INIT_POINTER(np->dev->npinfo, NULL);
-               call_rcu_bh(&npinfo->rcu, rcu_cleanup_netpoll_info);
+               call_rcu(&npinfo->rcu, rcu_cleanup_netpoll_info);
        } else
                RCU_INIT_POINTER(np->dev->npinfo, NULL);
 }
@@ -811,7 +811,7 @@ void __netpoll_free(struct netpoll *np)
        ASSERT_RTNL();
 
        /* Wait for transmitting packets to finish before freeing. */
-       synchronize_rcu_bh();
+       synchronize_rcu();
        __netpoll_cleanup(np);
        kfree(np);
 }