|
@@ -493,12 +493,7 @@ static void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)
|
|
|
if (IS_ERR(dst))
|
|
|
goto out;
|
|
|
|
|
|
- if (ipv6_addr_is_multicast(&fl6.daddr))
|
|
|
- hlimit = np->mcast_hops;
|
|
|
- else
|
|
|
- hlimit = np->hop_limit;
|
|
|
- if (hlimit < 0)
|
|
|
- hlimit = ip6_dst_hoplimit(dst);
|
|
|
+ hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst);
|
|
|
|
|
|
msg.skb = skb;
|
|
|
msg.offset = skb_network_offset(skb);
|
|
@@ -593,12 +588,7 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
|
|
|
if (IS_ERR(dst))
|
|
|
goto out;
|
|
|
|
|
|
- if (ipv6_addr_is_multicast(&fl6.daddr))
|
|
|
- hlimit = np->mcast_hops;
|
|
|
- else
|
|
|
- hlimit = np->hop_limit;
|
|
|
- if (hlimit < 0)
|
|
|
- hlimit = ip6_dst_hoplimit(dst);
|
|
|
+ hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst);
|
|
|
|
|
|
idev = __in6_dev_get(skb->dev);
|
|
|
|