diff options
author | David S. Miller <davem@davemloft.net> | 2008-02-06 03:52:44 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-06 03:52:44 -0800 |
commit | 655d2ce073f5927194dbc28d2bd3c062a4a3caac (patch) | |
tree | 9fa289764e2b3cd8dbdc6d11299f0f16b93414b6 /drivers/net/virtio_net.c | |
parent | 9c1ca6e68a5d8d58776833b6496c0656a10be50c (diff) | |
parent | 370076d932ff56a02b9c5328729a69d432cd4b32 (diff) |
Merge branch 'upstream-davem' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r-- | drivers/net/virtio_net.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index e66de0c12fc..fdc23678117 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -302,10 +302,12 @@ static int virtnet_open(struct net_device *dev) /* If all buffers were filled by other side before we napi_enabled, we * won't get another interrupt, so process any outstanding packets - * now. virtnet_poll wants re-enable the queue, so we disable here. */ - vi->rvq->vq_ops->disable_cb(vi->rvq); - netif_rx_schedule(vi->dev, &vi->napi); - + * now. virtnet_poll wants re-enable the queue, so we disable here. + * We synchronize against interrupts via NAPI_STATE_SCHED */ + if (netif_rx_schedule_prep(dev, &vi->napi)) { + vi->rvq->vq_ops->disable_cb(vi->rvq); + __netif_rx_schedule(dev, &vi->napi); + } return 0; } |