Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c45a3dfb authored by David S. Miller's avatar David S. Miller
Browse files

ipv6: Eliminate dst_get_neighbour_noref() usage in ip6_forward().



It's only used to get at neigh->primary_key, which in this context is
always going to be the same as rt->rt6i_gateway.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4991969a
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -388,7 +388,6 @@ int ip6_forward(struct sk_buff *skb)
	struct ipv6hdr *hdr = ipv6_hdr(skb);
	struct inet6_skb_parm *opt = IP6CB(skb);
	struct net *net = dev_net(dst->dev);
	struct neighbour *n;
	u32 mtu;

	if (net->ipv6.devconf_all->forwarding == 0)
@@ -463,8 +462,7 @@ int ip6_forward(struct sk_buff *skb)
	   send redirects to source routed frames.
	   We don't send redirects to frames decapsulated from IPsec.
	 */
	n = dst_get_neighbour_noref(dst);
	if (skb->dev == dst->dev && n && opt->srcrt == 0 && !skb_sec_path(skb)) {
	if (skb->dev == dst->dev && opt->srcrt == 0 && !skb_sec_path(skb)) {
		struct in6_addr *target = NULL;
		struct rt6_info *rt;

@@ -474,8 +472,8 @@ int ip6_forward(struct sk_buff *skb)
		 */

		rt = (struct rt6_info *) dst;
		if ((rt->rt6i_flags & RTF_GATEWAY))
			target = (struct in6_addr*)&n->primary_key;
		if (rt->rt6i_flags & RTF_GATEWAY)
			target = &rt->rt6i_gateway;
		else
			target = &hdr->daddr;