diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c index e09b074bb8a7..6583d4b110b3 100644 --- a/net/sched/sch_htb.c +++ b/net/sched/sch_htb.c @@ -1000,6 +1000,9 @@ static int htb_init(struct Qdisc *sch, struct nlattr *opt) int err; int i; + qdisc_watchdog_init(&q->watchdog, sch); + INIT_WORK(&q->work, htb_work_func); + if (!opt) return -EINVAL; @@ -1020,8 +1023,6 @@ static int htb_init(struct Qdisc *sch, struct nlattr *opt) for (i = 0; i < TC_HTB_NUMPRIO; i++) INIT_LIST_HEAD(q->drops + i); - qdisc_watchdog_init(&q->watchdog, sch); - INIT_WORK(&q->work, htb_work_func); skb_queue_head_init(&q->direct_queue); if (tb[TCA_HTB_DIRECT_QLEN])