aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2015-04-07 15:07:12 -0400
committerJames Bottomley <JBottomley@Odin.com>2015-04-10 10:46:08 -0400
commit85c0f177200b49cbed0f9c9ac67fe2656749f9cd (patch)
tree376b501e4b4916632810f2765428df586ae0e65b
parented4afe7405f3839236fd34c7918204640c00e4e8 (diff)
lpfc: Linux lpfc driver doesn't re-establish the link after a cable pull on LPe12002
Signed-off-by: Dick Kennedy <dick.kennedy@emulex.com> Signed-off-by: James Smart <james.smart@emulex.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Odin.com>
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c3
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c6
2 files changed, 3 insertions, 6 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index c66088d0fd2a..63505637a121 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -2243,8 +2243,7 @@ lpfc_adisc_done(struct lpfc_vport *vport)
2243 */ 2243 */
2244 if (vport->port_state < LPFC_VPORT_READY) { 2244 if (vport->port_state < LPFC_VPORT_READY) {
2245 /* If we get here, there is nothing to ADISC */ 2245 /* If we get here, there is nothing to ADISC */
2246 if (vport->port_type == LPFC_PHYSICAL_PORT) 2246 lpfc_issue_clear_la(phba, vport);
2247 lpfc_issue_clear_la(phba, vport);
2248 if (!(vport->fc_flag & FC_ABORT_DISCOVERY)) { 2247 if (!(vport->fc_flag & FC_ABORT_DISCOVERY)) {
2249 vport->num_disc_nodes = 0; 2248 vport->num_disc_nodes = 0;
2250 /* go thru NPR list, issue ELS PLOGIs */ 2249 /* go thru NPR list, issue ELS PLOGIs */
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 5452f1f4220e..b1ad1a068782 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -5070,8 +5070,7 @@ lpfc_disc_start(struct lpfc_vport *vport)
5070 !(vport->fc_flag & FC_PT2PT) && 5070 !(vport->fc_flag & FC_PT2PT) &&
5071 !(vport->fc_flag & FC_RSCN_MODE) && 5071 !(vport->fc_flag & FC_RSCN_MODE) &&
5072 (phba->sli_rev < LPFC_SLI_REV4)) { 5072 (phba->sli_rev < LPFC_SLI_REV4)) {
5073 if (vport->port_type == LPFC_PHYSICAL_PORT) 5073 lpfc_issue_clear_la(phba, vport);
5074 lpfc_issue_clear_la(phba, vport);
5075 lpfc_issue_reg_vpi(phba, vport); 5074 lpfc_issue_reg_vpi(phba, vport);
5076 return; 5075 return;
5077 } 5076 }
@@ -5082,8 +5081,7 @@ lpfc_disc_start(struct lpfc_vport *vport)
5082 */ 5081 */
5083 if (vport->port_state < LPFC_VPORT_READY && !clear_la_pending) { 5082 if (vport->port_state < LPFC_VPORT_READY && !clear_la_pending) {
5084 /* If we get here, there is nothing to ADISC */ 5083 /* If we get here, there is nothing to ADISC */
5085 if (vport->port_type == LPFC_PHYSICAL_PORT) 5084 lpfc_issue_clear_la(phba, vport);
5086 lpfc_issue_clear_la(phba, vport);
5087 5085
5088 if (!(vport->fc_flag & FC_ABORT_DISCOVERY)) { 5086 if (!(vport->fc_flag & FC_ABORT_DISCOVERY)) {
5089 vport->num_disc_nodes = 0; 5087 vport->num_disc_nodes = 0;