X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=net%2Fsched%2Fact_api.c;h=c7a0b0d481c08ab7533d273e57c1897c2760d1d0;hb=ebecaa6662b0a9c3590bd644a4cec6f9d96818b7;hp=96066665e3765d342fd1685ab32f0019c7455564;hpb=c8d6a77b5850dbf910e68ffe2054a6503ee2af47;p=deliverable%2Flinux.git diff --git a/net/sched/act_api.c b/net/sched/act_api.c index 96066665e376..c7a0b0d481c0 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c @@ -657,12 +657,15 @@ int tcf_action_copy_stats(struct sk_buff *skb, struct tc_action *a, if (compat_mode) { if (a->type == TCA_OLD_COMPAT) err = gnet_stats_start_copy_compat(skb, 0, - TCA_STATS, TCA_XSTATS, &p->tcfc_lock, &d); + TCA_STATS, + TCA_XSTATS, + &p->tcfc_lock, &d, + TCA_PAD); else return 0; } else err = gnet_stats_start_copy(skb, TCA_ACT_STATS, - &p->tcfc_lock, &d); + &p->tcfc_lock, &d, TCA_ACT_PAD); if (err < 0) goto errout; @@ -1115,7 +1118,7 @@ tc_dump_action(struct sk_buff *skb, struct netlink_callback *cb) nla_nest_end(skb, nest); ret = skb->len; } else - nla_nest_cancel(skb, nest); + nlmsg_trim(skb, b); nlh->nlmsg_len = skb_tail_pointer(skb) - b; if (NETLINK_CB(cb->skb).portid && ret)