[SCSI] cxgb3i: Fix error path for module init
authorRoland Dreier <rdreier@cisco.com>
Wed, 28 Apr 2010 05:39:22 +0000 (22:39 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 2 May 2010 19:35:23 +0000 (15:35 -0400)
If cxgb3i_pdu_init() fails, then it appears that cxgb3i_iscsi_init()
will not be cleaned up, leading to the iscsi transport being left
registered.  Fix this by adding a call to cxgb3i_iscsi_cleanup() on the
error path.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Cc: Karen Xie <kxie@chelsio.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/cxgb3i/cxgb3i_init.c

index d0ab23a..685af36 100644 (file)
@@ -104,8 +104,10 @@ static int __init cxgb3i_init_module(void)
                return err;
 
        err = cxgb3i_pdu_init();
-       if (err < 0)
+       if (err < 0) {
+               cxgb3i_iscsi_cleanup();
                return err;
+       }
 
        cxgb3_register_client(&t3c_client);