aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/fcoe
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/fcoe')
-rw-r--r--drivers/scsi/fcoe/fcoe_ctlr.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
index 75834255bf07..aff3c44a1cdc 100644
--- a/drivers/scsi/fcoe/fcoe_ctlr.c
+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
@@ -1291,8 +1291,16 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
1291 1291
1292 LIBFCOE_FIP_DBG(fip, "Clear Virtual Link received\n"); 1292 LIBFCOE_FIP_DBG(fip, "Clear Virtual Link received\n");
1293 1293
1294 if (!fcf || !lport->port_id) 1294 if (!fcf || !lport->port_id) {
1295 /*
1296 * We are yet to select best FCF, but we got CVL in the
1297 * meantime. reset the ctlr and let it rediscover the FCF
1298 */
1299 mutex_lock(&fip->ctlr_mutex);
1300 fcoe_ctlr_reset(fip);
1301 mutex_unlock(&fip->ctlr_mutex);
1295 return; 1302 return;
1303 }
1296 1304
1297 /* 1305 /*
1298 * mask of required descriptors. Validating each one clears its bit. 1306 * mask of required descriptors. Validating each one clears its bit.