summaryrefslogtreecommitdiffstats
path: root/drivers/lguest/lguest_device.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2007-11-19 17:20:42 +0100
committerRusty Russell <rusty@rustcorp.com.au>2007-11-19 01:20:42 +0100
commit74b2553f1d13e60fb27063204bd5b6908a6f8494 (patch)
treecd35e82d16cf190ccd95362478a598314de639ce /drivers/lguest/lguest_device.c
parentlguest: Fix uninitialized members in example launcher (diff)
downloadlinux-74b2553f1d13e60fb27063204bd5b6908a6f8494.tar.xz
linux-74b2553f1d13e60fb27063204bd5b6908a6f8494.zip
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>
Diffstat (limited to 'drivers/lguest/lguest_device.c')
-rw-r--r--drivers/lguest/lguest_device.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/lguest/lguest_device.c b/drivers/lguest/lguest_device.c
index 66f38722253a..e2eec38c83c2 100644
--- a/drivers/lguest/lguest_device.c
+++ b/drivers/lguest/lguest_device.c
@@ -247,6 +247,8 @@ static void lg_del_vq(struct virtqueue *vq)
{
struct lguest_vq_info *lvq = vq->priv;
+ /* Release the interrupt */
+ free_irq(lvq->config.irq, vq);
/* Tell virtio_ring.c to free the virtqueue. */
vring_del_virtqueue(vq);
/* Unmap the pages containing the ring. */