virtio: fix module/device unloading
[sfrench/cifs-2.6.git] / drivers / net / virtio_net.c
index a75be57fb2097374f0af1e69cc371f6559d8fbdc..d74e6f4aa248a39bdcde000e7bbae3adb5e8f7be 100644 (file)
@@ -404,8 +404,12 @@ free:
 
 static void virtnet_remove(struct virtio_device *vdev)
 {
-       unregister_netdev(vdev->priv);
-       free_netdev(vdev->priv);
+       struct virtnet_info *vi = vdev->priv;
+
+       vdev->config->del_vq(vi->svq);
+       vdev->config->del_vq(vi->rvq);
+       unregister_netdev(vi->dev);
+       free_netdev(vi->dev);
 }
 
 static struct virtio_device_id id_table[] = {