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

Commit 435e8eb2 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by David S. Miller
Browse files

neigh: Don't require a dst in neigh_resolve_output



Having a dst helps a little bit for teql but is fundamentally
unnecessary and there are code paths where a dst is not available that
it would be nice to use the neighbour cache.

Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bdf53c58
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -1284,12 +1284,8 @@ static void neigh_hh_init(struct neighbour *n)

int neigh_resolve_output(struct neighbour *neigh, struct sk_buff *skb)
{
	struct dst_entry *dst = skb_dst(skb);
	int rc = 0;

	if (!dst)
		goto discard;

	if (!neigh_event_send(neigh, skb)) {
		int err;
		struct net_device *dev = neigh->dev;
@@ -1312,8 +1308,6 @@ int neigh_resolve_output(struct neighbour *neigh, struct sk_buff *skb)
	}
out:
	return rc;
discard:
	neigh_dbg(1, "%s: dst=%p neigh=%p\n", __func__, dst, neigh);
out_kfree_skb:
	rc = -EINVAL;
	kfree_skb(skb);