diff options
Diffstat (limited to 'include/net/neighbour.h')
-rw-r--r-- | include/net/neighbour.h | 14 |
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) | |||
299 | return 0; | 299 | return 0; |
300 | } | 300 | } |
301 | 301 | ||
302 | #ifdef CONFIG_BRIDGE_NETFILTER | ||
303 | static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb) | ||
304 | { | ||
305 | unsigned seq, hh_alen; | ||
306 | |||
307 | do { | ||
308 | seq = read_seqbegin(&hh->hh_lock); | ||
309 | hh_alen = HH_DATA_ALIGN(ETH_HLEN); | ||
310 | memcpy(skb->data - hh_alen, hh->hh_data, ETH_ALEN + hh_alen - ETH_HLEN); | ||
311 | } while (read_seqretry(&hh->hh_lock, seq)); | ||
312 | return 0; | ||
313 | } | ||
314 | #endif | ||
315 | |||
302 | static inline int neigh_hh_output(struct hh_cache *hh, struct sk_buff *skb) | 316 | static inline int neigh_hh_output(struct hh_cache *hh, struct sk_buff *skb) |
303 | { | 317 | { |
304 | unsigned seq; | 318 | unsigned seq; |