diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_ct.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_ct.c | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c index bbb7310210b0..ae4106458991 100644 --- a/drivers/scsi/lpfc/lpfc_ct.c +++ b/drivers/scsi/lpfc/lpfc_ct.c | |||
@@ -324,7 +324,6 @@ lpfc_ns_rsp(struct lpfc_hba * phba, struct lpfc_dmabuf * mp, uint32_t Size) | |||
324 | struct lpfc_sli_ct_request *Response = | 324 | struct lpfc_sli_ct_request *Response = |
325 | (struct lpfc_sli_ct_request *) mp->virt; | 325 | (struct lpfc_sli_ct_request *) mp->virt; |
326 | struct lpfc_nodelist *ndlp = NULL; | 326 | struct lpfc_nodelist *ndlp = NULL; |
327 | struct lpfc_nodelist *next_ndlp; | ||
328 | struct lpfc_dmabuf *mlast, *next_mp; | 327 | struct lpfc_dmabuf *mlast, *next_mp; |
329 | uint32_t *ctptr = (uint32_t *) & Response->un.gid.PortType; | 328 | uint32_t *ctptr = (uint32_t *) & Response->un.gid.PortType; |
330 | uint32_t Did; | 329 | uint32_t Did; |
@@ -399,30 +398,6 @@ nsout1: | |||
399 | * current driver state. | 398 | * current driver state. |
400 | */ | 399 | */ |
401 | if (phba->hba_state == LPFC_HBA_READY) { | 400 | if (phba->hba_state == LPFC_HBA_READY) { |
402 | |||
403 | /* | ||
404 | * Switch ports that connect a loop of multiple targets need | ||
405 | * special consideration. The driver wants to unregister the | ||
406 | * rpi only on the target that was pulled from the loop. On | ||
407 | * RSCN, the driver wants to rediscover an NPort only if the | ||
408 | * driver flagged it as NLP_NPR_2B_DISC. Provided adisc is | ||
409 | * not enabled and the NPort is not capable of retransmissions | ||
410 | * (FC Tape) prevent timing races with the scsi error handler by | ||
411 | * unregistering the Nport's RPI. This action causes all | ||
412 | * outstanding IO to flush back to the midlayer. | ||
413 | */ | ||
414 | list_for_each_entry_safe(ndlp, next_ndlp, &phba->fc_npr_list, | ||
415 | nlp_listp) { | ||
416 | if (!(ndlp->nlp_flag & NLP_NPR_2B_DISC) && | ||
417 | (lpfc_rscn_payload_check(phba, ndlp->nlp_DID))) { | ||
418 | if ((phba->cfg_use_adisc == 0) && | ||
419 | !(ndlp->nlp_fcp_info & | ||
420 | NLP_FCP_2_DEVICE)) { | ||
421 | lpfc_unreg_rpi(phba, ndlp); | ||
422 | ndlp->nlp_flag &= ~NLP_NPR_ADISC; | ||
423 | } | ||
424 | } | ||
425 | } | ||
426 | lpfc_els_flush_rscn(phba); | 401 | lpfc_els_flush_rscn(phba); |
427 | spin_lock_irq(phba->host->host_lock); | 402 | spin_lock_irq(phba->host->host_lock); |
428 | phba->fc_flag |= FC_RSCN_MODE; /* we are still in RSCN mode */ | 403 | phba->fc_flag |= FC_RSCN_MODE; /* we are still in RSCN mode */ |