diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2023-03-21 21:32:21 -0700 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2023-03-21 21:32:21 -0700 |
| commit | 85496c9b3bf8dbe15e2433d3a0197954d323cadc (patch) | |
| tree | d2312716d8e90eff12270a472646f82aab0e6f42 /net/ipv4/ip_output.c | |
| parent | f6f4e739b16487c89d29ef8b425d019bed64f541 (diff) | |
| parent | fe602c87df1b6927562f4ee61edd851bb9578a49 (diff) | |
Merge branch 'net-remove-some-rcu_bh-cruft'
Eric Dumazet says:
====================
net: remove some rcu_bh cruft
There is no point using rcu_bh variant hoping to free objects faster,
especially hen using call_rcu() or kfree_rcu().
Disabling/enabling BH has a non-zero cost, and adds distracting
hot spots in kernel profiles eg. in ip6_xmit().
====================
Link: https://lore.kernel.org/r/20230321040115.787497-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv4/ip_output.c')
| -rw-r--r-- | net/ipv4/ip_output.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index cb04dbad9ea4..22a90a9392eb 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -219,7 +219,7 @@ static int ip_finish_output2(struct net *net, struct sock *sk, struct sk_buff *s return res; } - rcu_read_lock_bh(); + rcu_read_lock(); neigh = ip_neigh_for_gw(rt, skb, &is_v6gw); if (!IS_ERR(neigh)) { int res; @@ -227,10 +227,10 @@ static int ip_finish_output2(struct net *net, struct sock *sk, struct sk_buff *s sock_confirm_neigh(skb, neigh); /* if crossing protocols, can not use the cached header */ res = neigh_output(neigh, skb, is_v6gw); - rcu_read_unlock_bh(); + rcu_read_unlock(); return res; } - rcu_read_unlock_bh(); + rcu_read_unlock(); net_dbg_ratelimited("%s: No header cache and no neighbour!\n", __func__); |
