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>
                return err;
 
        err = cxgb3i_pdu_init();
-       if (err < 0)
+       if (err < 0) {
+               cxgb3i_iscsi_cleanup();
                return err;
+       }
 
        cxgb3_register_client(&t3c_client);