aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorVasu Dev <vasu.dev@intel.com>2012-07-06 13:40:15 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-07-20 03:58:56 -0400
commitac166d2fbd2d0c295454bcee7b3c930cb96e72cc (patch)
tree24f6afbd1e88f2d0b32fb77a667a0f89e740af49 /drivers
parentdb95fc004ea50f661a98c9f25585c0a734b5c238 (diff)
[SCSI] libfc: fix retries with FDMI lport states
The FC-GS-3 sepc requires to wait for least 3 times R_A_TOV per sec 4.6.1 "If the Requesting_CT does not receive a Response CT_IU from the Responding_CT within three times R_A_TOV, it shall consider this to be a protocol error." This means added four new states with management server could add significant delay with multiple retries on default 12 second timeout(3 * R_A_TOV), so instead just skip these states on very first timeout on any of these states to not stuck with states for such longer period. Signed-off-by: Vasu Dev <vasu.dev@intel.com> Tested-by: Marcus Dennis <marcusx.e.dennis@intel.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/libfc/fc_lport.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index d385d1147889..f04d15c67df3 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -1598,8 +1598,9 @@ static void fc_lport_timeout(struct work_struct *work)
1598 case LPORT_ST_RPA: 1598 case LPORT_ST_RPA:
1599 case LPORT_ST_DHBA: 1599 case LPORT_ST_DHBA:
1600 case LPORT_ST_DPRT: 1600 case LPORT_ST_DPRT:
1601 fc_lport_enter_ms(lport, lport->state); 1601 FC_LPORT_DBG(lport, "Skipping lport state %s to SCR\n",
1602 break; 1602 fc_lport_state(lport));
1603 /* fall thru */
1603 case LPORT_ST_SCR: 1604 case LPORT_ST_SCR:
1604 fc_lport_enter_scr(lport); 1605 fc_lport_enter_scr(lport);
1605 break; 1606 break;