]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/net/neighbour.h
Linux 2.6.20-rc4
[linux-2.6-omap-h63xx.git] / include / net / neighbour.h
index 23967031ddb7f4f9bffbdb6974aed85b31d9f91c..3725b93c52f3efabf4abe8519fcb0d03a723bb9c 100644 (file)
@@ -309,6 +309,24 @@ static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
        return 0;
 }
 
+static inline int neigh_hh_output(struct hh_cache *hh, struct sk_buff *skb)
+{
+       unsigned seq;
+       int hh_len;
+
+       do {
+               int hh_alen;
+
+               seq = read_seqbegin(&hh->hh_lock);
+               hh_len = hh->hh_len;
+               hh_alen = HH_DATA_ALIGN(hh_len);
+               memcpy(skb->data - hh_alen, hh->hh_data, hh_alen);
+       } while (read_seqretry(&hh->hh_lock, seq));
+
+       skb_push(skb, hh_len);
+       return hh->hh_output(skb);
+}
+
 static inline struct neighbour *
 __neigh_lookup(struct neigh_table *tbl, const void *pkey, struct net_device *dev, int creat)
 {