--- zzzz-none-000/linux-2.6.13.1/include/linux/skbuff.h 2005-09-10 02:42:58.000000000 +0000 +++ ohio-7170-487/linux-2.6.13.1/include/linux/skbuff.h 2009-07-07 10:45:50.000000000 +0000 @@ -281,6 +281,10 @@ #endif + /*--------------------------------------------------------------------------------------*\ + \*--------------------------------------------------------------------------------------*/ + void *destructor_info; + unsigned long uniq_id; /* These elements must be at the end, see alloc_skb() for details. */ unsigned int truesize; @@ -349,6 +353,8 @@ unsigned int to, struct ts_config *config, struct ts_state *state); +#define skb_trace(skb, where) do { } while (0) + /* Internal */ #define skb_shinfo(SKB) ((struct skb_shared_info *)((SKB)->end)) @@ -390,6 +396,7 @@ */ static inline void kfree_skb(struct sk_buff *skb) { + skb_trace(skb, 30); if (likely(atomic_read(&skb->users) == 1)) smp_rmb(); else if (likely(!atomic_dec_and_test(&skb->users))) @@ -1230,6 +1237,22 @@ extern void skb_init(void); extern void skb_add_mtu(int mtu); +/** + * skb_get_timestamp - get timestamp from a skb + * @skb: skb to get stamp from + * @stamp: pointer to struct timeval to store stamp in + * + * Timestamps are stored in the skb as offsets to a base timestamp. + * This function converts the offset back to a struct timeval and stores + * it in stamp. + */ +static inline void skb_get_timestamp(const struct sk_buff *skb, struct timeval *stamp) +{ + stamp->tv_sec = skb->stamp.tv_sec; + stamp->tv_usec = skb->stamp.tv_usec; +} + + #ifdef CONFIG_NETFILTER static inline void nf_conntrack_put(struct nf_conntrack *nfct) {