diff options
Diffstat (limited to 'net/sched')
| -rw-r--r-- | net/sched/sch_api.c | 2 | ||||
| -rw-r--r-- | net/sched/sch_generic.c | 10 | ||||
| -rw-r--r-- | net/sched/sch_sfq.c | 9 |
3 files changed, 14 insertions, 7 deletions
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c index 5219d5f9d754..b0601642e227 100644 --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c | |||
| @@ -447,7 +447,7 @@ void qdisc_watchdog_cancel(struct qdisc_watchdog *wd) | |||
| 447 | } | 447 | } |
| 448 | EXPORT_SYMBOL(qdisc_watchdog_cancel); | 448 | EXPORT_SYMBOL(qdisc_watchdog_cancel); |
| 449 | 449 | ||
| 450 | struct hlist_head *qdisc_class_hash_alloc(unsigned int n) | 450 | static struct hlist_head *qdisc_class_hash_alloc(unsigned int n) |
| 451 | { | 451 | { |
| 452 | unsigned int size = n * sizeof(struct hlist_head), i; | 452 | unsigned int size = n * sizeof(struct hlist_head), i; |
| 453 | struct hlist_head *h; | 453 | struct hlist_head *h; |
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index cb625b4d6da5..43abd4d27ea6 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c | |||
| @@ -212,9 +212,9 @@ static void dev_watchdog(unsigned long arg) | |||
| 212 | if (some_queue_stopped && | 212 | if (some_queue_stopped && |
| 213 | time_after(jiffies, (dev->trans_start + | 213 | time_after(jiffies, (dev->trans_start + |
| 214 | dev->watchdog_timeo))) { | 214 | dev->watchdog_timeo))) { |
| 215 | printk(KERN_INFO "NETDEV WATCHDOG: %s: " | 215 | char drivername[64]; |
| 216 | "transmit timed out\n", | 216 | printk(KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit timed out\n", |
| 217 | dev->name); | 217 | dev->name, netdev_drivername(dev, drivername, 64)); |
| 218 | dev->tx_timeout(dev); | 218 | dev->tx_timeout(dev); |
| 219 | WARN_ON_ONCE(1); | 219 | WARN_ON_ONCE(1); |
| 220 | } | 220 | } |
| @@ -736,9 +736,9 @@ static void shutdown_scheduler_queue(struct net_device *dev, | |||
| 736 | dev_queue->qdisc = qdisc_default; | 736 | dev_queue->qdisc = qdisc_default; |
| 737 | dev_queue->qdisc_sleeping = qdisc_default; | 737 | dev_queue->qdisc_sleeping = qdisc_default; |
| 738 | 738 | ||
| 739 | spin_lock(root_lock); | 739 | spin_lock_bh(root_lock); |
| 740 | qdisc_destroy(qdisc); | 740 | qdisc_destroy(qdisc); |
| 741 | spin_unlock(root_lock); | 741 | spin_unlock_bh(root_lock); |
| 742 | } | 742 | } |
| 743 | } | 743 | } |
| 744 | 744 | ||
diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c index 8589da666568..73f53844ce97 100644 --- a/net/sched/sch_sfq.c +++ b/net/sched/sch_sfq.c | |||
| @@ -536,7 +536,14 @@ static int sfq_dump(struct Qdisc *sch, struct sk_buff *skb) | |||
| 536 | 536 | ||
| 537 | opt.limit = q->limit; | 537 | opt.limit = q->limit; |
| 538 | opt.divisor = SFQ_HASH_DIVISOR; | 538 | opt.divisor = SFQ_HASH_DIVISOR; |
| 539 | opt.flows = q->limit; | 539 | opt.flows = 0; |
| 540 | if (q->tail != SFQ_DEPTH) { | ||
| 541 | unsigned int i; | ||
| 542 | |||
| 543 | for (i = 0; i < SFQ_HASH_DIVISOR; i++) | ||
| 544 | if (q->ht[i] != SFQ_DEPTH) | ||
| 545 | opt.flows++; | ||
| 546 | } | ||
| 540 | 547 | ||
| 541 | NLA_PUT(skb, TCA_OPTIONS, sizeof(opt), &opt); | 548 | NLA_PUT(skb, TCA_OPTIONS, sizeof(opt), &opt); |
| 542 | 549 | ||
