aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/libfc/fc_exch.c4
-rw-r--r--drivers/scsi/libfc/fc_lport.c10
2 files changed, 5 insertions, 9 deletions
diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
index 81235f36adc1..1b22130035da 100644
--- a/drivers/scsi/libfc/fc_exch.c
+++ b/drivers/scsi/libfc/fc_exch.c
@@ -1793,6 +1793,9 @@ restart:
1793 goto restart; 1793 goto restart;
1794 } 1794 }
1795 } 1795 }
1796 pool->next_index = 0;
1797 pool->left = FC_XID_UNKNOWN;
1798 pool->right = FC_XID_UNKNOWN;
1796 spin_unlock_bh(&pool->lock); 1799 spin_unlock_bh(&pool->lock);
1797} 1800}
1798 1801
@@ -2281,6 +2284,7 @@ struct fc_exch_mgr *fc_exch_mgr_alloc(struct fc_lport *lport,
2281 goto free_mempool; 2284 goto free_mempool;
2282 for_each_possible_cpu(cpu) { 2285 for_each_possible_cpu(cpu) {
2283 pool = per_cpu_ptr(mp->pool, cpu); 2286 pool = per_cpu_ptr(mp->pool, cpu);
2287 pool->next_index = 0;
2284 pool->left = FC_XID_UNKNOWN; 2288 pool->left = FC_XID_UNKNOWN;
2285 pool->right = FC_XID_UNKNOWN; 2289 pool->right = FC_XID_UNKNOWN;
2286 spin_lock_init(&pool->lock); 2290 spin_lock_init(&pool->lock);
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index 628f347404f9..e0fb89133566 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -1030,16 +1030,8 @@ static void fc_lport_enter_reset(struct fc_lport *lport)
1030 FCH_EVT_LIPRESET, 0); 1030 FCH_EVT_LIPRESET, 0);
1031 fc_vports_linkchange(lport); 1031 fc_vports_linkchange(lport);
1032 fc_lport_reset_locked(lport); 1032 fc_lport_reset_locked(lport);
1033 if (lport->link_up) { 1033 if (lport->link_up)
1034 /*
1035 * Wait upto resource allocation time out before
1036 * doing re-login since incomplete FIP exchanged
1037 * from last session may collide with exchanges
1038 * in new session.
1039 */
1040 msleep(lport->r_a_tov);
1041 fc_lport_enter_flogi(lport); 1034 fc_lport_enter_flogi(lport);
1042 }
1043} 1035}
1044 1036
1045/** 1037/**