]> Pileus Git - ~andy/linux/blobdiff - net/sched/act_nat.c
ixgbe: fix the display of DCB control stats in ethtool
[~andy/linux] / net / sched / act_nat.c
index 0a3c8339767a9f71fe3011da3267af2b6b634391..d885ba311564d9a766fce6eac37edbaf0ed82b71 100644 (file)
@@ -68,8 +68,8 @@ static int tcf_nat_init(struct nlattr *nla, struct nlattr *est,
        if (!pc) {
                pc = tcf_hash_create(parm->index, est, a, sizeof(*p), bind,
                                     &nat_idx_gen, &nat_hash_info);
-               if (unlikely(!pc))
-                       return -ENOMEM;
+               if (IS_ERR(pc))
+                   return PTR_ERR(pc);
                p = to_tcf_nat(pc);
                ret = ACT_P_CREATED;
        } else {
@@ -124,7 +124,7 @@ static int tcf_nat(struct sk_buff *skb, struct tc_action *a,
        egress = p->flags & TCA_NAT_FLAG_EGRESS;
        action = p->tcf_action;
 
-       p->tcf_bstats.bytes += skb->len;
+       p->tcf_bstats.bytes += qdisc_pkt_len(skb);
        p->tcf_bstats.packets++;
 
        spin_unlock(&p->tcf_lock);