]> err.no Git - linux-2.6/blobdiff - include/net/sch_generic.h
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzi...
[linux-2.6] / include / net / sch_generic.h
index 4ebd615bd013e4cd8331cb6e7e89b39e05ab5e0c..4c3b35153c3722b2a5871cf78ed11023f7fa9e17 100644 (file)
@@ -307,11 +307,27 @@ drop:
  */
 static inline u32 qdisc_l2t(struct qdisc_rate_table* rtab, unsigned int pktlen)
 {
-       int slot = pktlen;
+       int slot = pktlen + rtab->rate.cell_align + rtab->rate.overhead;
+       if (slot < 0)
+               slot = 0;
        slot >>= rtab->rate.cell_log;
        if (slot > 255)
                return (rtab->data[255]*(slot >> 8) + rtab->data[slot & 0xFF]);
        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