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

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

net: Create and use new helper, neigh_output().

parent a2928297
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -344,6 +344,15 @@ static inline int neigh_hh_output(struct hh_cache *hh, struct sk_buff *skb)
	return hh->hh_output(skb);
}

static inline int neigh_output(struct neighbour *n, struct sk_buff *skb)
{
	struct hh_cache *hh = &n->hh;
	if (hh->hh_len)
		return neigh_hh_output(hh, skb);
	else
		return n->output(skb);
}

static inline struct neighbour *
__neigh_lookup(struct neigh_table *tbl, const void *pkey, struct net_device *dev, int creat)
{
+3 −7
Original line number Diff line number Diff line
@@ -205,13 +205,9 @@ static inline int ip_finish_output2(struct sk_buff *skb)
	}

	neigh = dst->neighbour;
	if (neigh) {
		struct hh_cache *hh = &neigh->hh;
		if (hh->hh_len)
			return neigh_hh_output(hh, skb);
		else
			return neigh->output(skb);
	}
	if (neigh)
		return neigh_output(neigh, skb);

	if (net_ratelimit())
		printk(KERN_DEBUG "ip_finish_output2: No header cache and no neighbour!\n");
	kfree_skb(skb);
+3 −7
Original line number Diff line number Diff line
@@ -136,13 +136,9 @@ static int ip6_finish_output2(struct sk_buff *skb)
	}

	neigh = dst->neighbour;
	if (neigh) {
		struct hh_cache *hh = &neigh->hh;
		if (hh->hh_len)
			return neigh_hh_output(hh, skb);
		else
			return neigh->output(skb);
	}
	if (neigh)
		return neigh_output(neigh, skb);

	IP6_INC_STATS_BH(dev_net(dst->dev),
			 ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES);
	kfree_skb(skb);