diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-26 22:17:19 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-26 22:17:19 -0500 |
| commit | f4d53cedce872fe1439818d15e067b497b5d466f (patch) | |
| tree | b6942135c8a4235cb409a833d736307eaecdbc90 /drivers/net/virtio_net.c | |
| parent | 9bb9f2220e6d904f60f9f72209b5313d0808f0c2 (diff) | |
| parent | 8329d98e480250ef5f5a083f9c3af50510b5e65d (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
virtio: fix net driver loop case where we fail to restart
module: fix and elaborate comments
virtio: fix module/device unloading
lguest: Fix uninitialized members in example launcher
Diffstat (limited to 'drivers/net/virtio_net.c')
| -rw-r--r-- | drivers/net/virtio_net.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index a75be57fb209..5413dbf3d4ac 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
| @@ -198,8 +198,8 @@ again: | |||
| 198 | if (vi->num < vi->max / 2) | 198 | if (vi->num < vi->max / 2) |
| 199 | try_fill_recv(vi); | 199 | try_fill_recv(vi); |
| 200 | 200 | ||
| 201 | /* All done? */ | 201 | /* Out of packets? */ |
| 202 | if (!skb) { | 202 | if (received < budget) { |
| 203 | netif_rx_complete(vi->dev, napi); | 203 | netif_rx_complete(vi->dev, napi); |
| 204 | if (unlikely(!vi->rvq->vq_ops->restart(vi->rvq)) | 204 | if (unlikely(!vi->rvq->vq_ops->restart(vi->rvq)) |
| 205 | && netif_rx_reschedule(vi->dev, napi)) | 205 | && netif_rx_reschedule(vi->dev, napi)) |
| @@ -404,8 +404,12 @@ free: | |||
| 404 | 404 | ||
| 405 | static void virtnet_remove(struct virtio_device *vdev) | 405 | static void virtnet_remove(struct virtio_device *vdev) |
| 406 | { | 406 | { |
| 407 | unregister_netdev(vdev->priv); | 407 | struct virtnet_info *vi = vdev->priv; |
| 408 | free_netdev(vdev->priv); | 408 | |
| 409 | vdev->config->del_vq(vi->svq); | ||
| 410 | vdev->config->del_vq(vi->rvq); | ||
| 411 | unregister_netdev(vi->dev); | ||
| 412 | free_netdev(vi->dev); | ||
| 409 | } | 413 | } |
| 410 | 414 | ||
| 411 | static struct virtio_device_id id_table[] = { | 415 | static struct virtio_device_id id_table[] = { |
