diff options
Diffstat (limited to 'drivers/scsi/lpfc')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hbadisc.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 883ea2d9f237..d6cc131a1221 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c | |||
@@ -2545,8 +2545,11 @@ lpfc_mbx_cmpl_fcf_rr_read_fcf_rec(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) | |||
2545 | if (!new_fcf_record) { | 2545 | if (!new_fcf_record) { |
2546 | lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, | 2546 | lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, |
2547 | "2766 Mailbox command READ_FCF_RECORD " | 2547 | "2766 Mailbox command READ_FCF_RECORD " |
2548 | "failed to retrieve a FCF record.\n"); | 2548 | "failed to retrieve a FCF record. " |
2549 | goto error_out; | 2549 | "hba_flg x%x fcf_flg x%x\n", phba->hba_flag, |
2550 | phba->fcf.fcf_flag); | ||
2551 | lpfc_unregister_fcf_rescan(phba); | ||
2552 | goto out; | ||
2550 | } | 2553 | } |
2551 | 2554 | ||
2552 | /* Get the needed parameters from FCF record */ | 2555 | /* Get the needed parameters from FCF record */ |
@@ -3973,7 +3976,10 @@ lpfc_nlp_counters(struct lpfc_vport *vport, int state, int count) | |||
3973 | vport->fc_map_cnt += count; | 3976 | vport->fc_map_cnt += count; |
3974 | break; | 3977 | break; |
3975 | case NLP_STE_NPR_NODE: | 3978 | case NLP_STE_NPR_NODE: |
3976 | vport->fc_npr_cnt += count; | 3979 | if (vport->fc_npr_cnt == 0 && count == -1) |
3980 | vport->fc_npr_cnt = 0; | ||
3981 | else | ||
3982 | vport->fc_npr_cnt += count; | ||
3977 | break; | 3983 | break; |
3978 | } | 3984 | } |
3979 | spin_unlock_irq(shost->host_lock); | 3985 | spin_unlock_irq(shost->host_lock); |