virtio: fix module/device unloading
The virtio code never hooked through the ->remove callback. Although noone supports device removal at the moment, this code is already needed for module unloading. This of course also revealed bugs in virtio_blk, virtio_net and lguest unloading paths. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -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[] = {
|
||||
|
Reference in New Issue
Block a user