diff mbox series

[09/14] qla2xxx: fix npiv create erroneous error

Message ID 20210805102005.20183-10-njavali@marvell.com
State Superseded
Headers show
Series [01/14] qla2xxx: Add host attribute to trigger MPI hang | expand

Commit Message

Nilesh Javali Aug. 5, 2021, 10:20 a.m. UTC
From: Quinn Tran <qutran@marvell.com>

When user create multiple NPIVs, the switch capabilities field
is checked before a vport is allowed to create. This field is being
toggled if a switch scan is in progress. This creates erroneous
reject of vport create.

Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_init.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Himanshu Madhani Aug. 5, 2021, 3:42 p.m. UTC | #1
> On Aug 5, 2021, at 5:20 AM, Nilesh Javali <njavali@marvell.com> wrote:
> 
> From: Quinn Tran <qutran@marvell.com>
> 
> When user create multiple NPIVs, the switch capabilities field
> is checked before a vport is allowed to create. This field is being
> toggled if a switch scan is in progress. This creates erroneous
> reject of vport create.
> 
> Signed-off-by: Quinn Tran <qutran@marvell.com>
> Signed-off-by: Nilesh Javali <njavali@marvell.com>
> ---
> drivers/scsi/qla2xxx/qla_init.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
> index c427ef7e7c72..266e9e06a6f2 100644
> --- a/drivers/scsi/qla2xxx/qla_init.c
> +++ b/drivers/scsi/qla2xxx/qla_init.c
> @@ -4623,11 +4623,11 @@ qla2x00_configure_hba(scsi_qla_host_t *vha)
> 	/* initialize */
> 	ha->min_external_loopid = SNS_FIRST_LOOP_ID;
> 	ha->operating_mode = LOOP;
> -	ha->switch_cap = 0;
> 
> 	switch (topo) {
> 	case 0:
> 		ql_dbg(ql_dbg_disc, vha, 0x200b, "HBA in NL topology.\n");
> +		ha->switch_cap = 0;
> 		ha->current_topology = ISP_CFG_NL;
> 		strcpy(connect_type, "(Loop)");
> 		break;
> @@ -4641,6 +4641,7 @@ qla2x00_configure_hba(scsi_qla_host_t *vha)
> 
> 	case 2:
> 		ql_dbg(ql_dbg_disc, vha, 0x200d, "HBA in N P2P topology.\n");
> +		ha->switch_cap = 0;
> 		ha->operating_mode = P2P;
> 		ha->current_topology = ISP_CFG_N;
> 		strcpy(connect_type, "(N_Port-to-N_Port)");
> @@ -4657,6 +4658,7 @@ qla2x00_configure_hba(scsi_qla_host_t *vha)
> 	default:
> 		ql_dbg(ql_dbg_disc, vha, 0x200f,
> 		    "HBA in unknown topology %x, using NL.\n", topo);
> +		ha->switch_cap = 0;
> 		ha->current_topology = ISP_CFG_NL;
> 		strcpy(connect_type, "(Loop)");
> 		break;
> -- 
> 2.19.0.rc0
> 

Looks Good. 

Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>

--
Himanshu Madhani	 Oracle Linux Engineering
diff mbox series

Patch

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index c427ef7e7c72..266e9e06a6f2 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -4623,11 +4623,11 @@  qla2x00_configure_hba(scsi_qla_host_t *vha)
 	/* initialize */
 	ha->min_external_loopid = SNS_FIRST_LOOP_ID;
 	ha->operating_mode = LOOP;
-	ha->switch_cap = 0;
 
 	switch (topo) {
 	case 0:
 		ql_dbg(ql_dbg_disc, vha, 0x200b, "HBA in NL topology.\n");
+		ha->switch_cap = 0;
 		ha->current_topology = ISP_CFG_NL;
 		strcpy(connect_type, "(Loop)");
 		break;
@@ -4641,6 +4641,7 @@  qla2x00_configure_hba(scsi_qla_host_t *vha)
 
 	case 2:
 		ql_dbg(ql_dbg_disc, vha, 0x200d, "HBA in N P2P topology.\n");
+		ha->switch_cap = 0;
 		ha->operating_mode = P2P;
 		ha->current_topology = ISP_CFG_N;
 		strcpy(connect_type, "(N_Port-to-N_Port)");
@@ -4657,6 +4658,7 @@  qla2x00_configure_hba(scsi_qla_host_t *vha)
 	default:
 		ql_dbg(ql_dbg_disc, vha, 0x200f,
 		    "HBA in unknown topology %x, using NL.\n", topo);
+		ha->switch_cap = 0;
 		ha->current_topology = ISP_CFG_NL;
 		strcpy(connect_type, "(Loop)");
 		break;