From 6559b1d1a03eeebe6c85605b19f9214365c2cd3e Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Wed, 6 Feb 2008 08:50:11 +0100 Subject: [PATCH] --- yaml --- r: 83667 b: refs/heads/master c: 370076d932ff56a02b9c5328729a69d432cd4b32 h: refs/heads/master i: 83665: 8990bdca431b42923c858387fce17cc02db9a25c 83663: 15233b0a9b01ac6dff189d43fa6aadf19c4d1689 v: v3 --- [refs] | 2 +- trunk/drivers/net/virtio_net.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index b79f7906e627..e6705c1bca59 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 15cf6dde99e40bf571a5ca48376650e163fcd30f +refs/heads/master: 370076d932ff56a02b9c5328729a69d432cd4b32 diff --git a/trunk/drivers/net/virtio_net.c b/trunk/drivers/net/virtio_net.c index e66de0c12fc1..fdc23678117b 100644 --- a/trunk/drivers/net/virtio_net.c +++ b/trunk/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; }