]> 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 7aca9fd8a11cc191cb57bfa38ee5f35d74c12500..34ee56cf4bcc938db57e758f56bc474cc8bbc244 100644 (file)
@@ -2152,7 +2152,7 @@ static void fcoe_ctlr_vn_restart(struct fcoe_ctlr *fip)
         */
        port_id = fip->port_id;
        if (fip->probe_tries)
-               port_id = prandom32(&fip->rnd_state) & 0xffff;
+               port_id = prandom_u32_state(&fip->rnd_state) & 0xffff;
        else if (!port_id)
                port_id = fip->lp->wwpn & 0xffff;
        if (!port_id || port_id == 0xffff)
@@ -2177,7 +2177,7 @@ static void fcoe_ctlr_vn_restart(struct fcoe_ctlr *fip)
 static void fcoe_ctlr_vn_start(struct fcoe_ctlr *fip)
 {
        fip->probe_tries = 0;
-       prandom32_seed(&fip->rnd_state, fip->lp->wwpn);
+       prandom_seed_state(&fip->rnd_state, fip->lp->wwpn);
        fcoe_ctlr_vn_restart(fip);
 }
 
@@ -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);