|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] scsiback: fix initialization error paths
# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxx>
# Date 1326102860 -3600
# Node ID c3d7beacd036903e397da7cbbabbebcd59f56650
# Parent cdbf3be3f2bd1e3988ea3f1c795e5636c0b53d4b
scsiback: fix initialization error paths
scsiback_interface_exit() must not be called upon failure of
scsiback_interface_init().
Similarly, scsiback_xenbus_unregister() shouldn't be called when
scsiback_xenbus_init() failed. With this reference to it removed, the
function can be marked __exit (and its initialization counterpart
should have been __init from the beginning).
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
diff -r cdbf3be3f2bd -r c3d7beacd036 drivers/xen/scsiback/scsiback.c
--- a/drivers/xen/scsiback/scsiback.c Mon Jan 09 10:53:28 2012 +0100
+++ b/drivers/xen/scsiback/scsiback.c Mon Jan 09 10:54:20 2012 +0100
@@ -700,7 +700,7 @@
pending_grant_handles[i] = SCSIBACK_INVALID_HANDLE;
if (scsiback_interface_init() < 0)
- goto out_of_kmem;
+ goto out_of_memory;
INIT_LIST_HEAD(&pending_free);
@@ -708,15 +708,13 @@
list_add_tail(&pending_reqs[i].free_list, &pending_free);
if (scsiback_xenbus_init())
- goto out_of_xenbus;
+ goto out_interface;
scsiback_emulation_init();
return 0;
-out_of_xenbus:
- scsiback_xenbus_unregister();
-out_of_kmem:
+out_interface:
scsiback_interface_exit();
out_of_memory:
kfree(pending_reqs);
diff -r cdbf3be3f2bd -r c3d7beacd036 drivers/xen/scsiback/xenbus.c
--- a/drivers/xen/scsiback/xenbus.c Mon Jan 09 10:53:28 2012 +0100
+++ b/drivers/xen/scsiback/xenbus.c Mon Jan 09 10:54:20 2012 +0100
@@ -363,12 +363,12 @@
.otherend_changed = scsiback_frontend_changed
);
-int scsiback_xenbus_init(void)
+int __init scsiback_xenbus_init(void)
{
return xenbus_register_backend(&scsiback_driver);
}
-void scsiback_xenbus_unregister(void)
+void __exit scsiback_xenbus_unregister(void)
{
xenbus_unregister_driver(&scsiback_driver);
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |