Commit 73c20a8b authored by John Fastabend's avatar John Fastabend Committed by David S. Miller

net: sched: fix missing free per cpu on qstats

When a qdisc is using per cpu stats (currently just the ingress
qdisc) only the bstats are being freed. This also free's the qstats.

Fixes: b0ab6f92 ("net: sched: enable per cpu qstats")
Signed-off-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
Acked-by: default avatarEric Dumazet <edumazet@google.com>
Acked-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f941461c
...@@ -658,8 +658,10 @@ static void qdisc_rcu_free(struct rcu_head *head) ...@@ -658,8 +658,10 @@ static void qdisc_rcu_free(struct rcu_head *head)
{ {
struct Qdisc *qdisc = container_of(head, struct Qdisc, rcu_head); struct Qdisc *qdisc = container_of(head, struct Qdisc, rcu_head);
if (qdisc_is_percpu_stats(qdisc)) if (qdisc_is_percpu_stats(qdisc)) {
free_percpu(qdisc->cpu_bstats); free_percpu(qdisc->cpu_bstats);
free_percpu(qdisc->cpu_qstats);
}
kfree((char *) qdisc - qdisc->padded); kfree((char *) qdisc - qdisc->padded);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment