Skip to content

Commit

Permalink
9p: add remove function to trans_virtio
Browse files Browse the repository at this point in the history
Request from rusty:
Just cleaning up patches for 2.6.25 merge, and noticed that
net/9p/trans_virtio.c doesn't have a remove function.  This will crash when
removing the module (console doesn't have one because it can't really be
removed).

Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
  • Loading branch information
Eric Van Hensbergen authored and Eric Van Hensbergen committed Feb 7, 2008
1 parent dea7bbb commit f393354
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions net/9p/trans_virtio.c
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,18 @@ static struct p9_trans *p9_virtio_create(const char *devname, char *args)
return trans;
}

static void p9_virtio_remove(struct virtio_device *vdev)
{
struct virtio_chan *chan = vdev->priv;

BUG_ON(chan->inuse);

if (chan->initialized) {
vdev->config->del_vq(chan->vq);
chan->initialized = false;
}
}

#define VIRTIO_ID_9P 9

static struct virtio_device_id id_table[] = {
Expand All @@ -398,6 +410,7 @@ static struct virtio_driver p9_virtio_drv = {
.driver.owner = THIS_MODULE,
.id_table = id_table,
.probe = p9_virtio_probe,
.remove = p9_virtio_remove,
};

static struct p9_trans_module p9_virtio_trans = {
Expand All @@ -419,7 +432,13 @@ static int __init p9_virtio_init(void)
return register_virtio_driver(&p9_virtio_drv);
}

static void __exit p9_virtio_cleanup(void)
{
unregister_virtio_driver(&p9_virtio_drv);
}

module_init(p9_virtio_init);
module_exit(p9_virtio_cleanup);

MODULE_DEVICE_TABLE(virtio, id_table);
MODULE_AUTHOR("Eric Van Hensbergen <ericvh@gmail.com>");
Expand Down

0 comments on commit f393354

Please sign in to comment.