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:
David S. Miller
2008-07-08 23:11:25 -07:00
parent 970565bbad
commit 86d804e10a
6 changed files with 27 additions and 19 deletions

View File

@ -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;
}
}