netdev: Make netif_schedule() routines work with netdev_queue objects.
Only plain netif_schedule() remains taking a net_device, mostly as a
compatability item while we transition the rest of these interfaces.
Everything else calls netif_schedule_queue() or __netif_schedule(),
both of which take a netdev_queue pointer.
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index e73bd68..95873f8 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -282,11 +282,11 @@
{
struct qdisc_watchdog *wd = container_of(timer, struct qdisc_watchdog,
timer);
- struct net_device *dev = qdisc_dev(wd->qdisc);
+ struct netdev_queue *txq = wd->qdisc->dev_queue;
wd->qdisc->flags &= ~TCQ_F_THROTTLED;
smp_wmb();
- netif_schedule(dev);
+ netif_schedule_queue(txq);
return HRTIMER_NORESTART;
}
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
index 99ce3da..4efc836 100644
--- a/net/sched/sch_cbq.c
+++ b/net/sched/sch_cbq.c
@@ -650,7 +650,7 @@
}
sch->flags &= ~TCQ_F_THROTTLED;
- netif_schedule(qdisc_dev(sch));
+ netif_schedule_queue(sch->dev_queue);
return HRTIMER_NORESTART;
}
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 8247a40..407dfdb 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -62,7 +62,7 @@
return q->q.qlen;
}
-static inline int dev_requeue_skb(struct sk_buff *skb, struct net_device *dev,
+static inline int dev_requeue_skb(struct sk_buff *skb,
struct netdev_queue *dev_queue,
struct Qdisc *q)
{
@@ -71,7 +71,7 @@
else
q->ops->requeue(skb, q);
- netif_schedule(dev);
+ netif_schedule_queue(dev_queue);
return 0;
}
@@ -114,7 +114,7 @@
* some time.
*/
__get_cpu_var(netdev_rx_stat).cpu_collision++;
- ret = dev_requeue_skb(skb, dev, dev_queue, q);
+ ret = dev_requeue_skb(skb, dev_queue, q);
}
return ret;
@@ -179,7 +179,7 @@
printk(KERN_WARNING "BUG %s code %d qlen %d\n",
dev->name, ret, q->q.qlen);
- ret = dev_requeue_skb(skb, dev, txq, q);
+ ret = dev_requeue_skb(skb, txq, q);
break;
}
@@ -200,7 +200,7 @@
* 2. we've been doing it for too long.
*/
if (need_resched() || jiffies != start_time) {
- netif_schedule(dev);
+ netif_schedule_queue(&dev->tx_queue);
break;
}
}