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>
This commit is contained in:
@@ -282,11 +282,11 @@ static enum hrtimer_restart qdisc_watchdog(struct hrtimer *timer)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
@@ -650,7 +650,7 @@ static enum hrtimer_restart cbq_undelay(struct hrtimer *timer)
|
||||
}
|
||||
|
||||
sch->flags &= ~TCQ_F_THROTTLED;
|
||||
netif_schedule(qdisc_dev(sch));
|
||||
netif_schedule_queue(sch->dev_queue);
|
||||
return HRTIMER_NORESTART;
|
||||
}
|
||||
|
||||
|
@@ -62,7 +62,7 @@ static inline int qdisc_qlen(struct Qdisc *q)
|
||||
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 @@ static inline int dev_requeue_skb(struct sk_buff *skb, struct net_device *dev,
|
||||
else
|
||||
q->ops->requeue(skb, q);
|
||||
|
||||
netif_schedule(dev);
|
||||
netif_schedule_queue(dev_queue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ static inline int handle_dev_cpu_collision(struct sk_buff *skb,
|
||||
* 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 @@ static inline int qdisc_restart(struct net_device *dev)
|
||||
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 @@ void __qdisc_run(struct net_device *dev)
|
||||
* 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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user