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: b0ab6f9275
("net: sched: enable per cpu qstats")
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f941461c92
commit
73c20a8b72
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue