summaryrefslogtreecommitdiffstats
path: root/include/net/neighbour.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-07-17 02:26:00 +0200
committerDavid S. Miller <davem@davemloft.net>2011-07-17 02:26:00 +0200
commit05e3aa0949c138803185f92bd7db9be59cfca1be (patch)
tree8ea4dd1ab94160dfe51d3d0c0d305d20f2a62a04 /include/net/neighbour.h
parentipv6: Use calculated 'neigh' instead of re-evaluating dst->neighbour (diff)
downloadlinux-05e3aa0949c138803185f92bd7db9be59cfca1be.tar.xz
linux-05e3aa0949c138803185f92bd7db9be59cfca1be.zip
net: Create and use new helper, neigh_output().
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/neighbour.h')
-rw-r--r--include/net/neighbour.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index bd8f9f09ab5c..337da241a80f 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -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)
{