summaryrefslogtreecommitdiffstats
path: root/drivers/block/xen-blkfront.c
diff options
context:
space:
mode:
authorJan Beulich <JBeulich@suse.com>2012-04-05 16:04:52 +0100
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-05-11 16:11:54 -0400
commit8605067fb9b8e34aecf44ec258657c9cc009fc5a (patch)
tree5c646866a1ef241674600764158c9eb340a5d543 /drivers/block/xen-blkfront.c
parente77c78c02290c27925f67cd35b497e99ee0d6fe1 (diff)
downloadlinux-8605067fb9b8e34aecf44ec258657c9cc009fc5a.tar.gz
linux-8605067fb9b8e34aecf44ec258657c9cc009fc5a.tar.bz2
linux-8605067fb9b8e34aecf44ec258657c9cc009fc5a.zip
xen-blkfront: module exit handling adjustments
The blkdev major must be released upon exit, or else the module can't attach to devices using the same majors upon being loaded again. Also avoid leaking the minor tracking bitmap. Signed-off-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'drivers/block/xen-blkfront.c')
-rw-r--r--drivers/block/xen-blkfront.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index 4f2b46052976..60eed4bdd2e4 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -1500,7 +1500,9 @@ module_init(xlblk_init);
static void __exit xlblk_exit(void)
{
- return xenbus_unregister_driver(&blkfront_driver);
+ xenbus_unregister_driver(&blkfront_driver);
+ unregister_blkdev(XENVBD_MAJOR, DEV_NAME);
+ kfree(minors);
}
module_exit(xlblk_exit);