diff mbox

[net-next] net: ipv4: remove disable of bottom half in inet_rtm_getroute

Message ID 1483848263-17031-1-git-send-email-dsa@cumulusnetworks.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

David Ahern Jan. 8, 2017, 4:04 a.m. UTC
Nothing about the route lookup requires bottom half to be disabled.
Remove the local_bh_disable ... local_bh_enable around ip_route_input.
This appears to be a vestige of days gone by as it has been there
since the beginning of git time.

Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
 net/ipv4/route.c | 2 --
 1 file changed, 2 deletions(-)

Comments

David Miller Jan. 9, 2017, 6:55 p.m. UTC | #1
From: David Ahern <dsa@cumulusnetworks.com>
Date: Sat,  7 Jan 2017 20:04:23 -0800

> Nothing about the route lookup requires bottom half to be disabled.
> Remove the local_bh_disable ... local_bh_enable around ip_route_input.
> This appears to be a vestige of days gone by as it has been there
> since the beginning of git time.
> 
> Signed-off-by: David Ahern <dsa@cumulusnetworks.com>

Agreed, this shouldn't be necessary.

The key with input route lookups is that the skb->dst reference cannot
escape the packet receive path, unless we force the dst, which
ip_route_input() does under RCU protection.

So this should all be ok.

Applied, thanks.
diff mbox

Patch

diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index f51823dc998b..7144288371cf 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -2631,9 +2631,7 @@  static int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr *nlh)
 		skb->protocol	= htons(ETH_P_IP);
 		skb->dev	= dev;
 		skb->mark	= mark;
-		local_bh_disable();
 		err = ip_route_input(skb, dst, src, rtm->rtm_tos, dev);
-		local_bh_enable();
 
 		rt = skb_rtable(skb);
 		if (err == 0 && rt->dst.error)