]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/scsi/fcoe/fcoe_ctlr.c
libfc, fcoe, bnx2fc: Split fc_disc_init into fc_disc_{init, config}
[karo-tx-linux.git] / drivers / scsi / fcoe / fcoe_ctlr.c
index 08c3bc398da2c1b234dadb62a56f1e1b47da5500..34ee56cf4bcc938db57e758f56bc474cc8bbc244 100644 (file)
@@ -2826,6 +2826,8 @@ unlock:
 int fcoe_libfc_config(struct fc_lport *lport, struct fcoe_ctlr *fip,
                      const struct libfc_function_template *tt, int init_fcp)
 {
+       void *priv = lport;
+
        /* Set the function pointers set by the LLDD */
        memcpy(&lport->tt, tt, sizeof(*tt));
        if (init_fcp && fc_fcp_init(lport))
@@ -2842,12 +2844,12 @@ int fcoe_libfc_config(struct fc_lport *lport, struct fcoe_ctlr *fip,
                lport->tt.disc_start = fcoe_ctlr_disc_start;
                lport->tt.disc_stop = fcoe_ctlr_disc_stop;
                lport->tt.disc_stop_final = fcoe_ctlr_disc_stop_final;
-               mutex_init(&lport->disc.disc_mutex);
-               INIT_LIST_HEAD(&lport->disc.rports);
-               lport->disc.priv = fip;
-       } else {
-               fc_disc_init(lport);
+               priv = fip;
        }
+
+       fc_disc_init(lport);
+       fc_disc_config(lport, priv);
+
        return 0;
 }
 EXPORT_SYMBOL_GPL(fcoe_libfc_config);