]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/sched/sch_api.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile
[karo-tx-linux.git] / net / sched / sch_api.c
index 3fcfd4ef11d1d9bca8d3ce4670404e4ae5af9df7..0fc4a18fd96f7d83ec21e95bc6d0740025f6a219 100644 (file)
@@ -189,7 +189,7 @@ EXPORT_SYMBOL(unregister_qdisc);
    (root qdisc, all its children, children of children etc.)
  */
 
-struct Qdisc *qdisc_match_from_root(struct Qdisc *root, u32 handle)
+static struct Qdisc *qdisc_match_from_root(struct Qdisc *root, u32 handle)
 {
        struct Qdisc *q;
 
@@ -450,7 +450,6 @@ static enum hrtimer_restart qdisc_watchdog(struct hrtimer *timer)
                                                 timer);
 
        wd->qdisc->flags &= ~TCQ_F_THROTTLED;
-       smp_wmb();
        __netif_schedule(qdisc_root(wd->qdisc));
 
        return HRTIMER_NORESTART;
@@ -880,9 +879,12 @@ static int qdisc_change(struct Qdisc *sch, struct nlattr **tca)
        sch->stab = stab;
 
        if (tca[TCA_RATE])
+               /* NB: ignores errors from replace_estimator
+                  because change can't be undone. */
                gen_replace_estimator(&sch->bstats, &sch->rate_est,
-                                     qdisc_root_sleeping_lock(sch),
-                                     tca[TCA_RATE]);
+                                           qdisc_root_sleeping_lock(sch),
+                                           tca[TCA_RATE]);
+
        return 0;
 }