aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBhanu Prakash Gollapudi <bprakash@broadcom.com>2012-03-09 17:49:53 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-03-28 04:03:30 -0400
commit14619ea689cc0b257cf998469005d0515133d7bc (patch)
tree3f2108dfe3134ecd9840113969d60c23d4ae7257 /drivers
parent5e70c4c43e559ea6a1bf1edc0eb7d284ea7f16b4 (diff)
[SCSI] libfcoe: Do not sends FDISCs before FLOGI during CVL
When handling CVL with no Vx port descriptors, lports for NPIV ports are reset before issuing the ctlr_reset. This causes FDISCs to be issued before successful FLOGI. Fix it by resetting the controller before resetting the lports. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/fcoe/fcoe_ctlr.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
index e7522dcc296e..a43dad2238d0 100644
--- a/drivers/scsi/fcoe/fcoe_ctlr.c
+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
@@ -1273,11 +1273,6 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
1273 * No Vx_Port description. Clear all NPIV ports, 1273 * No Vx_Port description. Clear all NPIV ports,
1274 * followed by physical port 1274 * followed by physical port
1275 */ 1275 */
1276 mutex_lock(&lport->lp_mutex);
1277 list_for_each_entry(vn_port, &lport->vports, list)
1278 fc_lport_reset(vn_port);
1279 mutex_unlock(&lport->lp_mutex);
1280
1281 mutex_lock(&fip->ctlr_mutex); 1276 mutex_lock(&fip->ctlr_mutex);
1282 per_cpu_ptr(lport->dev_stats, 1277 per_cpu_ptr(lport->dev_stats,
1283 get_cpu())->VLinkFailureCount++; 1278 get_cpu())->VLinkFailureCount++;
@@ -1285,6 +1280,11 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
1285 fcoe_ctlr_reset(fip); 1280 fcoe_ctlr_reset(fip);
1286 mutex_unlock(&fip->ctlr_mutex); 1281 mutex_unlock(&fip->ctlr_mutex);
1287 1282
1283 mutex_lock(&lport->lp_mutex);
1284 list_for_each_entry(vn_port, &lport->vports, list)
1285 fc_lport_reset(vn_port);
1286 mutex_unlock(&lport->lp_mutex);
1287
1288 fc_lport_reset(fip->lp); 1288 fc_lport_reset(fip->lp);
1289 fcoe_ctlr_solicit(fip, NULL); 1289 fcoe_ctlr_solicit(fip, NULL);
1290 } else { 1290 } else {