aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/neighbour.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-05-10 23:03:26 -0700
committerDavid S. Miller <davem@davemloft.net>2010-05-10 23:03:26 -0700
commitd250fe91ae129bff0968e685cc9c466d3a5e3482 (patch)
treee38b7628a5c6afb80c22341759f392585e558cb1 /include/net/neighbour.h
parentnet: trans_start cleanups (diff)
parentnetfilter: use rcu_dereference_protected() (diff)
downloadlinux-dev-d250fe91ae129bff0968e685cc9c466d3a5e3482.tar.xz
linux-dev-d250fe91ae129bff0968e685cc9c466d3a5e3482.zip
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6
Diffstat (limited to 'include/net/neighbour.h')
-rw-r--r--include/net/neighbour.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index da1d58be31b7..eb21340a573b 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -299,6 +299,20 @@ static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
return 0;
}
+#ifdef CONFIG_BRIDGE_NETFILTER
+static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb)
+{
+ unsigned seq, hh_alen;
+
+ do {
+ seq = read_seqbegin(&hh->hh_lock);
+ hh_alen = HH_DATA_ALIGN(ETH_HLEN);
+ memcpy(skb->data - hh_alen, hh->hh_data, ETH_ALEN + hh_alen - ETH_HLEN);
+ } while (read_seqretry(&hh->hh_lock, seq));
+ return 0;
+}
+#endif
+
static inline int neigh_hh_output(struct hh_cache *hh, struct sk_buff *skb)
{
unsigned seq;