ipv6: rpl: Remove redundant skb_dst_drop().
authorKuniyuki Iwashima <kuniyu@amazon.com>
Mon, 10 Jul 2023 21:35:11 +0000 (14:35 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 13 Jul 2023 00:12:29 +0000 (17:12 -0700)
RPL code has a pattern where skb_dst_drop() is called before
ip6_route_input().

However, ip6_route_input() calls skb_dst_drop() internally,
so we need not call skb_dst_drop() before ip6_route_input().

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20230710213511.5364-1-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv6/exthdrs.c
net/ipv6/rpl_iptunnel.c

index 202fc3aaa83cccb6ba9628acead1a4f06c027418..f4bfccae003cc18942b927a047a381caacd13cad 100644 (file)
@@ -612,8 +612,6 @@ looped_back:
 
        kfree(buf);
 
-       skb_dst_drop(skb);
-
        ip6_route_input(skb);
 
        if (skb_dst(skb)->error) {
index b1c028df686ed2e888c002d8fd16fef21d04b0fd..a013b92cbb860aa36a23f50d3d5c5963857d601c 100644 (file)
@@ -272,8 +272,6 @@ static int rpl_input(struct sk_buff *skb)
        dst = dst_cache_get(&rlwt->cache);
        preempt_enable();
 
-       skb_dst_drop(skb);
-
        if (!dst) {
                ip6_route_input(skb);
                dst = skb_dst(skb);
@@ -284,6 +282,7 @@ static int rpl_input(struct sk_buff *skb)
                        preempt_enable();
                }
        } else {
+               skb_dst_drop(skb);
                skb_dst_set(skb, dst);
        }