aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libfc
diff options
context:
space:
mode:
authorChris Leech <christopher.leech@intel.com>2009-11-03 14:46:24 -0500
committerJames Bottomley <James.Bottomley@suse.de>2009-12-04 13:00:57 -0500
commitdb36c06cc6802d03bcba08982377f7c03a3cda7f (patch)
tree9a9ad60bd0de059f1839b8bab2cfc555d0ca56d1 /drivers/scsi/libfc
parent8faecddb212d502b1b77936498b9a82b13c4ff44 (diff)
[SCSI] libfc, libfcoe: FDISC ELS for NPIV
Add FDISC ELS handling to libfc and libfcoe, treat it the same as FLOGI where appropriate. Add checking for NPIV support in the FLOGI LS_ACC service parameters. Signed-off-by: Chris Leech <christopher.leech@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/libfc')
-rw-r--r--drivers/scsi/libfc/fc_lport.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index 46897cf23ea6..ccba67ca68a1 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -1449,6 +1449,9 @@ static void fc_lport_flogi_resp(struct fc_seq *sp, struct fc_frame *fp,
1449 e_d_tov = ntohl(flp->fl_csp.sp_e_d_tov); 1449 e_d_tov = ntohl(flp->fl_csp.sp_e_d_tov);
1450 if (csp_flags & FC_SP_FT_EDTR) 1450 if (csp_flags & FC_SP_FT_EDTR)
1451 e_d_tov /= 1000000; 1451 e_d_tov /= 1000000;
1452
1453 lport->npiv_enabled = !!(csp_flags & FC_SP_FT_NPIV_ACC);
1454
1452 if ((csp_flags & FC_SP_FT_FPORT) == 0) { 1455 if ((csp_flags & FC_SP_FT_FPORT) == 0) {
1453 if (e_d_tov > lport->e_d_tov) 1456 if (e_d_tov > lport->e_d_tov)
1454 lport->e_d_tov = e_d_tov; 1457 lport->e_d_tov = e_d_tov;
@@ -1498,7 +1501,8 @@ void fc_lport_enter_flogi(struct fc_lport *lport)
1498 if (!fp) 1501 if (!fp)
1499 return fc_lport_error(lport, fp); 1502 return fc_lport_error(lport, fp);
1500 1503
1501 if (!lport->tt.elsct_send(lport, FC_FID_FLOGI, fp, ELS_FLOGI, 1504 if (!lport->tt.elsct_send(lport, FC_FID_FLOGI, fp,
1505 lport->vport ? ELS_FDISC : ELS_FLOGI,
1502 fc_lport_flogi_resp, lport, lport->e_d_tov)) 1506 fc_lport_flogi_resp, lport, lport->e_d_tov))
1503 fc_lport_error(lport, NULL); 1507 fc_lport_error(lport, NULL);
1504} 1508}