|
@@ -947,9 +947,13 @@ void qdisc_free(struct Qdisc *qdisc)
|
|
|
|
|
|
|
|
void qdisc_destroy(struct Qdisc *qdisc)
|
|
void qdisc_destroy(struct Qdisc *qdisc)
|
|
|
{
|
|
{
|
|
|
- const struct Qdisc_ops *ops = qdisc->ops;
|
|
|
|
|
|
|
+ const struct Qdisc_ops *ops;
|
|
|
struct sk_buff *skb, *tmp;
|
|
struct sk_buff *skb, *tmp;
|
|
|
|
|
|
|
|
|
|
+ if (!qdisc)
|
|
|
|
|
+ return;
|
|
|
|
|
+ ops = qdisc->ops;
|
|
|
|
|
+
|
|
|
if (qdisc->flags & TCQ_F_BUILTIN ||
|
|
if (qdisc->flags & TCQ_F_BUILTIN ||
|
|
|
!refcount_dec_and_test(&qdisc->refcnt))
|
|
!refcount_dec_and_test(&qdisc->refcnt))
|
|
|
return;
|
|
return;
|