X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fnet%2Fsch_generic.h;h=9418ac26c986eb3911904cc5ff09735df4bd0d2c;hb=d63bddbe90c4fd924b2155ca92a879393d856170;hp=a02ec9e5fea51934666d4b18085b0bcbd682f86a;hpb=541010e4b8921cd781ff02ae68028501457045b6;p=linux-2.6 diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index a02ec9e5fe..9418ac26c9 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -86,7 +86,7 @@ struct Qdisc_class_ops struct Qdisc_ops { struct Qdisc_ops *next; - struct Qdisc_class_ops *cl_ops; + const struct Qdisc_class_ops *cl_ops; char id[IFNAMSIZ]; int priv_size; @@ -316,4 +316,18 @@ static inline u32 qdisc_l2t(struct qdisc_rate_table* rtab, unsigned int pktlen) return rtab->data[slot]; } +#ifdef CONFIG_NET_CLS_ACT +static inline struct sk_buff *skb_act_clone(struct sk_buff *skb, gfp_t gfp_mask) +{ + struct sk_buff *n = skb_clone(skb, gfp_mask); + + if (n) { + n->tc_verd = SET_TC_VERD(n->tc_verd, 0); + n->tc_verd = CLR_TC_OK2MUNGE(n->tc_verd); + n->tc_verd = CLR_TC_MUNGED(n->tc_verd); + } + return n; +} +#endif + #endif