diff options
author | James Smart <james.smart@emulex.com> | 2010-06-07 15:23:17 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-27 13:01:31 -0400 |
commit | ffc954936b134cc6d2eba1282cc71084929c3704 (patch) | |
tree | 22cbdde46b1ee531c8664335ec35a0c8767bad79 /drivers/scsi/lpfc/lpfc_els.c | |
parent | 8701f18504751a5b89be3203e28c5ec04c147167 (diff) |
[SCSI] lpfc 8.3.13: FC Discovery Fixes and enhancements.
- Retry PLOGI up to 48 times when LS_RJT reason is
"Unable to supply requested data."
- When dev loss timeout occures do not change state if there
is an outstanding REG_LOGIN.
- Add logic to ignore REG_LOGIN completion if discovery is
restarted while waiting for REG_LOGIN.
- Only change state on REG_LOGIN completion if still in
state waiting for REG_LOGIN completion.
- Only send ADISCs to FCP-2 Targets (not Initiators).
Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com>
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_els.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_els.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index c4c7f0ad7468..6b1850c9fdff 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c | |||
@@ -2740,6 +2740,15 @@ lpfc_els_retry(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, | |||
2740 | retry = 1; | 2740 | retry = 1; |
2741 | break; | 2741 | break; |
2742 | } | 2742 | } |
2743 | if (stat.un.b.lsRjtRsnCodeExp == | ||
2744 | LSEXP_CANT_GIVE_DATA) { | ||
2745 | if (cmd == ELS_CMD_PLOGI) { | ||
2746 | delay = 1000; | ||
2747 | maxretry = 48; | ||
2748 | } | ||
2749 | retry = 1; | ||
2750 | break; | ||
2751 | } | ||
2743 | if (cmd == ELS_CMD_PLOGI) { | 2752 | if (cmd == ELS_CMD_PLOGI) { |
2744 | delay = 1000; | 2753 | delay = 1000; |
2745 | maxretry = lpfc_max_els_tries + 1; | 2754 | maxretry = lpfc_max_els_tries + 1; |