scsi: lpfc: Honor module parameter lpfc_use_adisc
Subsystems (2)
PATCH 1/1 scsi: lpfc: Honor module parameter lpfc_use_adisc
The initial lpfc_desc_set_adisc implementation dea3101e0a5c ("lpfc:
add Emulex FC driver version 8.0.28") enabled ADISC if
cfg_use_adisc && RSCN_MODE && FCP_2_DEVICE
In commit 92d7f7b0cde3 ("[SCSI] lpfc: NPIV: add NPIV support on top of SLI-3") this changed to
(cfg_use_adisc && RSC_MODE) || FCP_2_DEVICE
and later in ffc954936b13 ("[SCSI] lpfc 8.3.13: FC Discovery Fixes and enhancements.") to
(cfg_use_adisc && RSC_MODE) || (FCP_2_DEVICe && FCP_TARGET)
A customer reports that after a Devlos, an ADISC failure is logged. It turns out the ADISC flag is set even the user explicitly set lpfc_use_adisc = 0.
[Sat Dec 22 22:55:58 2018] lpfc 0000:82:00.0: 2:(0):0203 Devloss timeout on WWPN 50:01:43:80:12:8e:40:20 NPort x05df00 Data: x82000000 x8 xa [Sat Dec 22 23:08:20 2018] lpfc 0000:82:00.0: 2:(0):2755 ADISC failure DID:05DF00 Status:x9/x70000
---
Hi,
Unfortunatly, I don't really know all the procotols involved. So this is just a rough guess what is wrong.
Thanks,
Daniel
drivers/scsi/lpfc/lpfc_nportdisc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/scsi/lpfc/lpfc_nportdisc.c +2 -2
@@ -940,9 +940,9 @@ lpfc_disc_set_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)if (!(vport->fc_flag &FC_PT2PT )) {/* Check config parameter use-adisc or FCP-2 */ -if ((vport->cfg_use_adisc && (vport->fc_flag &FC_RSCN_MODE )) || +if (vport->cfg_use_adisc && ((vport->fc_flag &FC_RSCN_MODE ) || ((ndlp->nlp_fcp_info &NLP_FCP_2_DEVICE ) && - (ndlp->nlp_type &NLP_FCP_TARGET ))) { + (ndlp->nlp_type &NLP_FCP_TARGET )))) {spin_lock_irq (shost->host_lock); ndlp->nlp_flag |=NLP_NPR_ADISC ;spin_unlock_irq (shost->host_lock);
Signature · 1 line
2.16.4
Quoted 45 lines · Daniel Wagner
The initial
lpfc_desc_set_adiscimplementationdea3101e0a5c("lpfc:
add Emulex FC driver version 8.0.28") enabled ADISC ifcfg_use_adisc && RSCN_MODE && FCP_2_DEVICEIn commit
92d7f7b0cde3("[SCSI] lpfc: NPIV: add NPIV support on top of SLI-3") this changed to(cfg_use_adisc && RSC_MODE) || FCP_2_DEVICEand later in
ffc954936b13("[SCSI] lpfc 8.3.13: FC Discovery Fixes and enhancements.") to(cfg_use_adisc && RSC_MODE) || (FCP_2_DEVICe && FCP_TARGET)A customer reports that after a Devlos, an ADISC failure is logged. It turns out the ADISC flag is set even the user explicitly set
lpfc_use_adisc= 0.[Sat Dec 22 22:55:58 2018] lpfc 0000:82:00.0: 2:(0):0203 Devloss timeout on WWPN 50:01:43:80:12:8e:40:20 NPort x05df00 Data: x82000000 x8 xa [Sat Dec 22 23:08:20 2018] lpfc 0000:82:00.0: 2:(0):2755 ADISC failure DID:05DF00 Status:x9/x70000Fixes 92d7f7b0cde3 ("[SCSI] lpfc: NPIV: add NPIV support on top of SLI-3")Cc James Smart <[email protected]>Cc Alex Iannicelli <[email protected]>Signed-off-by Daniel Wagner <[email protected]>---
Hi,Unfortunatly, I don't really know all the procotols involved. So this is just a rough guess what is wrong.
Thanks,
Danieldrivers/scsi/lpfc/lpfc_nportdisc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)drivers/scsi/lpfc/lpfc_nportdisc.c +0
-0@@ -940,9 +940,9 @@ lpfc_disc_set_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_disc_set_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) · line 948
Quoted 10 lines
drivers/scsi/lpfc/lpfc_nportdisc.c +2
-2if (!(vport->fc_flag &FC_PT2PT )) {/* Check config parameter use-adisc or FCP-2 */ -if ((vport->cfg_use_adisc && (vport->fc_flag &FC_RSCN_MODE )) || +if (vport->cfg_use_adisc && ((vport->fc_flag &FC_RSCN_MODE ) || ((ndlp->nlp_fcp_info &NLP_FCP_2_DEVICE ) && - (ndlp->nlp_type &NLP_FCP_TARGET ))) { + (ndlp->nlp_type &NLP_FCP_TARGET )))) {spin_lock_irq (shost->host_lock); ndlp->nlp_flag |=NLP_NPR_ADISC ;spin_unlock_irq (shost->host_lock);
Looks reasonable.
Cheers,
Hannes
Signature · 4 lines
Dr. Hannes Reinecke Teamlead Storage & Networking [email protected] +49 911 74053 688 SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 247165 (AG München), GF: Felix Imendörffer
Quoted 44 lines · Daniel Wagner
The initial
lpfc_desc_set_adiscimplementationdea3101e0a5c("lpfc:
add Emulex FC driver version 8.0.28") enabled ADISC ifcfg_use_adisc && RSCN_MODE && FCP_2_DEVICEIn commit
92d7f7b0cde3("[SCSI] lpfc: NPIV: add NPIV support on top of SLI-3") this changed to(cfg_use_adisc && RSC_MODE) || FCP_2_DEVICEand later in
ffc954936b13("[SCSI] lpfc 8.3.13: FC Discovery Fixes and enhancements.") to(cfg_use_adisc && RSC_MODE) || (FCP_2_DEVICe && FCP_TARGET)A customer reports that after a Devlos, an ADISC failure is logged. It turns out the ADISC flag is set even the user explicitly set
lpfc_use_adisc= 0.[Sat Dec 22 22:55:58 2018] lpfc 0000:82:00.0: 2:(0):0203 Devloss timeout on WWPN 50:01:43:80:12:8e:40:20 NPort x05df00 Data: x82000000 x8 xa [Sat Dec 22 23:08:20 2018] lpfc 0000:82:00.0: 2:(0):2755 ADISC failure DID:05DF00 Status:x9/x70000Fixes 92d7f7b0cde3 ("[SCSI] lpfc: NPIV: add NPIV support on top of SLI-3")Cc James Smart <[email protected]>Cc Alex Iannicelli <[email protected]>Signed-off-by Daniel Wagner <[email protected]>---
Hi,Unfortunatly, I don't really know all the procotols involved. So this is just a rough guess what is wrong.
Thanks,
Danieldrivers/scsi/lpfc/lpfc_nportdisc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)drivers/scsi/lpfc/lpfc_nportdisc.c +0
-0@@ -940,9 +940,9 @@ lpfc_disc_set_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_disc_set_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) · line 948
Quoted 10 lines
drivers/scsi/lpfc/lpfc_nportdisc.c +2
-2if (!(vport->fc_flag &FC_PT2PT )) {/* Check config parameter use-adisc or FCP-2 */ -if ((vport->cfg_use_adisc && (vport->fc_flag &FC_RSCN_MODE )) || +if (vport->cfg_use_adisc && ((vport->fc_flag &FC_RSCN_MODE ) || ((ndlp->nlp_fcp_info &NLP_FCP_2_DEVICE ) && - (ndlp->nlp_type &NLP_FCP_TARGET ))) { + (ndlp->nlp_type &NLP_FCP_TARGET )))) {spin_lock_irq (shost->host_lock); ndlp->nlp_flag |=NLP_NPR_ADISC ;spin_unlock_irq (shost->host_lock);
Looks good.
Thank You
-- james