mirror of https://gitee.com/openkylin/linux.git
qdisc: exit case fixes for skb list handling in qdisc layer
More minor fixes to merge commit53fda7f7f9
(Merge branch 'xmit_list') that allows us to work with a list of SKBs. Fixing exit cases in qdisc_reset() and qdisc_destroy(), where a leftover requeued SKB (qdisc->gso_skb) can have the potential of being a skb list, thus use kfree_skb_list(). This is a followup to commit10770bc2d1
("qdisc: adjustments for API allowing skb list xmits"). Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
10770bc2d1
commit
3f3c7eec60
|
@ -621,7 +621,7 @@ void qdisc_reset(struct Qdisc *qdisc)
|
|||
ops->reset(qdisc);
|
||||
|
||||
if (qdisc->gso_skb) {
|
||||
kfree_skb(qdisc->gso_skb);
|
||||
kfree_skb_list(qdisc->gso_skb);
|
||||
qdisc->gso_skb = NULL;
|
||||
qdisc->q.qlen = 0;
|
||||
}
|
||||
|
@ -657,7 +657,7 @@ void qdisc_destroy(struct Qdisc *qdisc)
|
|||
module_put(ops->owner);
|
||||
dev_put(qdisc_dev(qdisc));
|
||||
|
||||
kfree_skb(qdisc->gso_skb);
|
||||
kfree_skb_list(qdisc->gso_skb);
|
||||
/*
|
||||
* gen_estimator est_timer() might access qdisc->q.lock,
|
||||
* wait a RCU grace period before freeing qdisc.
|
||||
|
|
Loading…
Reference in New Issue