]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/sched/sch_htb.c
netfilter: nf_conntrack_tcp: fix unaligned memory access in tcp_sack
[karo-tx-linux.git] / net / sched / sch_htb.c
index 97d4761cc31e8633864a40f1cc35e13b8d668614..d2943a4864fa5e7b5a2c287efd0df59f0ccd0009 100644 (file)
@@ -924,6 +924,7 @@ static struct sk_buff *htb_dequeue(struct Qdisc *sch)
                }
        }
        sch->qstats.overlimits++;
+       qdisc_watchdog_cancel(&q->watchdog);
        qdisc_watchdog_schedule(&q->watchdog, next_event);
 fin:
        return skb;
@@ -1043,7 +1044,7 @@ static int htb_init(struct Qdisc *sch, struct nlattr *opt)
 
 static int htb_dump(struct Qdisc *sch, struct sk_buff *skb)
 {
-       spinlock_t *root_lock = qdisc_root_lock(sch);
+       spinlock_t *root_lock = qdisc_root_sleeping_lock(sch);
        struct htb_sched *q = qdisc_priv(sch);
        struct nlattr *nest;
        struct tc_htb_glob gopt;
@@ -1075,7 +1076,7 @@ static int htb_dump_class(struct Qdisc *sch, unsigned long arg,
                          struct sk_buff *skb, struct tcmsg *tcm)
 {
        struct htb_class *cl = (struct htb_class *)arg;
-       spinlock_t *root_lock = qdisc_root_lock(sch);
+       spinlock_t *root_lock = qdisc_root_sleeping_lock(sch);
        struct nlattr *nest;
        struct tc_htb_opt opt;