diff mbox series

[02/10] qla2xxx: Remove dead code (GPNID)

Message ID 20221222043933.2825-3-njavali@marvell.com (mailing list archive)
State Accepted
Headers show
Series qla2xxx driver enhancements | expand

Commit Message

Nilesh Javali Dec. 22, 2022, 4:39 a.m. UTC
From: Quinn Tran <qutran@marvell.com>

Remove stale unused code for GPNID.

Cc: stable@vger.kernel.org
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_def.h  |   7 +-
 drivers/scsi/qla2xxx/qla_gbl.h  |   4 -
 drivers/scsi/qla2xxx/qla_gs.c   | 297 --------------------------------
 drivers/scsi/qla2xxx/qla_init.c |   2 +-
 drivers/scsi/qla2xxx/qla_iocb.c |   2 +-
 drivers/scsi/qla2xxx/qla_os.c   |   4 -
 6 files changed, 3 insertions(+), 313 deletions(-)

Comments

Himanshu Madhani Jan. 9, 2023, 8:07 p.m. UTC | #1
> On Dec 21, 2022, at 8:39 PM, Nilesh Javali <njavali@marvell.com> wrote:
> 
> From: Quinn Tran <qutran@marvell.com>
> 
> Remove stale unused code for GPNID.
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Quinn Tran <qutran@marvell.com>
> Signed-off-by: Nilesh Javali <njavali@marvell.com>
> ---
> drivers/scsi/qla2xxx/qla_def.h  |   7 +-
> drivers/scsi/qla2xxx/qla_gbl.h  |   4 -
> drivers/scsi/qla2xxx/qla_gs.c   | 297 --------------------------------
> drivers/scsi/qla2xxx/qla_init.c |   2 +-
> drivers/scsi/qla2xxx/qla_iocb.c |   2 +-
> drivers/scsi/qla2xxx/qla_os.c   |   4 -
> 6 files changed, 3 insertions(+), 313 deletions(-)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
> index 0dde3fa9e258..9ee9ce613c75 100644
> --- a/drivers/scsi/qla2xxx/qla_def.h
> +++ b/drivers/scsi/qla2xxx/qla_def.h
> @@ -3479,7 +3479,6 @@ enum qla_work_type {
> 	QLA_EVT_ASYNC_ADISC,
> 	QLA_EVT_UEVENT,
> 	QLA_EVT_AENFX,
> -	QLA_EVT_GPNID,
> 	QLA_EVT_UNMAP,
> 	QLA_EVT_NEW_SESS,
> 	QLA_EVT_GPDB,
> @@ -3534,9 +3533,6 @@ struct qla_work_evt {
> 		struct {
> 			srb_t *sp;
> 		} iosb;
> -		struct {
> -			port_id_t id;
> -		} gpnid;
> 		struct {
> 			port_id_t id;
> 			u8 port_name[8];
> @@ -3544,7 +3540,7 @@ struct qla_work_evt {
> 			void *pla;
> 			u8 fc4_type;
> 		} new_sess;
> -		struct { /*Get PDB, Get Speed, update fcport, gnl, gidpn */
> +		struct { /*Get PDB, Get Speed, update fcport, gnl */
> 			fc_port_t *fcport;
> 			u8 opt;
> 		} fcport;
> @@ -5025,7 +5021,6 @@ typedef struct scsi_qla_host {
> 	uint8_t n2n_port_name[WWN_SIZE];
> 	uint16_t	n2n_id;
> 	__le16 dport_data[4];
> -	struct list_head gpnid_list;
> 	struct fab_scan scan;
> 	uint8_t	scm_fabric_connection_flags;
> 
> diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
> index e3256e721be1..2acddc8dc943 100644
> --- a/drivers/scsi/qla2xxx/qla_gbl.h
> +++ b/drivers/scsi/qla2xxx/qla_gbl.h
> @@ -721,10 +721,6 @@ extern int qla2x00_chk_ms_status(scsi_qla_host_t *, ms_iocb_entry_t *,
> 	struct ct_sns_rsp *, const char *);
> extern void qla2x00_async_iocb_timeout(void *data);
> 
> -extern int qla24xx_post_gpnid_work(struct scsi_qla_host *, port_id_t *);
> -extern int qla24xx_async_gpnid(scsi_qla_host_t *, port_id_t *);
> -void qla24xx_handle_gpnid_event(scsi_qla_host_t *, struct event_arg *);
> -
> int qla24xx_post_gpsc_work(struct scsi_qla_host *, fc_port_t *);
> int qla24xx_async_gpsc(scsi_qla_host_t *, fc_port_t *);
> void qla24xx_handle_gpsc_event(scsi_qla_host_t *, struct event_arg *);
> diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
> index 64ab070b8716..fe1eb06db654 100644
> --- a/drivers/scsi/qla2xxx/qla_gs.c
> +++ b/drivers/scsi/qla2xxx/qla_gs.c
> @@ -2949,22 +2949,6 @@ int qla24xx_async_gpsc(scsi_qla_host_t *vha, fc_port_t *fcport)
> 	return rval;
> }
> 
> -int qla24xx_post_gpnid_work(struct scsi_qla_host *vha, port_id_t *id)
> -{
> -	struct qla_work_evt *e;
> -
> -	if (test_bit(UNLOADING, &vha->dpc_flags) ||
> -	    (vha->vp_idx && test_bit(VPORT_DELETE, &vha->dpc_flags)))
> -		return 0;
> -
> -	e = qla2x00_alloc_work(vha, QLA_EVT_GPNID);
> -	if (!e)
> -		return QLA_FUNCTION_FAILED;
> -
> -	e->u.gpnid.id = *id;
> -	return qla2x00_post_work(vha, e);
> -}
> -
> void qla24xx_sp_unmap(scsi_qla_host_t *vha, srb_t *sp)
> {
> 	struct srb_iocb *c = &sp->u.iocb_cmd;
> @@ -2997,287 +2981,6 @@ void qla24xx_sp_unmap(scsi_qla_host_t *vha, srb_t *sp)
> 	kref_put(&sp->cmd_kref, qla2x00_sp_release);
> }
> 
> -void qla24xx_handle_gpnid_event(scsi_qla_host_t *vha, struct event_arg *ea)
> -{
> -	fc_port_t *fcport, *conflict, *t;
> -	u16 data[2];
> -
> -	ql_dbg(ql_dbg_disc, vha, 0xffff,
> -	    "%s %d port_id: %06x\n",
> -	    __func__, __LINE__, ea->id.b24);
> -
> -	if (ea->rc) {
> -		/* cable is disconnected */
> -		list_for_each_entry_safe(fcport, t, &vha->vp_fcports, list) {
> -			if (fcport->d_id.b24 == ea->id.b24)
> -				fcport->scan_state = QLA_FCPORT_SCAN;
> -
> -			qlt_schedule_sess_for_deletion(fcport);
> -		}
> -	} else {
> -		/* cable is connected */
> -		fcport = qla2x00_find_fcport_by_wwpn(vha, ea->port_name, 1);
> -		if (fcport) {
> -			list_for_each_entry_safe(conflict, t, &vha->vp_fcports,
> -			    list) {
> -				if ((conflict->d_id.b24 == ea->id.b24) &&
> -				    (fcport != conflict))
> -					/*
> -					 * 2 fcports with conflict Nport ID or
> -					 * an existing fcport is having nport ID
> -					 * conflict with new fcport.
> -					 */
> -
> -					conflict->scan_state = QLA_FCPORT_SCAN;
> -
> -				qlt_schedule_sess_for_deletion(conflict);
> -			}
> -
> -			fcport->scan_needed = 0;
> -			fcport->rscn_gen++;
> -			fcport->scan_state = QLA_FCPORT_FOUND;
> -			fcport->flags |= FCF_FABRIC_DEVICE;
> -			if (fcport->login_retry == 0) {
> -				fcport->login_retry =
> -					vha->hw->login_retry_count;
> -				ql_dbg(ql_dbg_disc, vha, 0xffff,
> -				    "Port login retry %8phN, lid 0x%04x cnt=%d.\n",
> -				    fcport->port_name, fcport->loop_id,
> -				    fcport->login_retry);
> -			}
> -			switch (fcport->disc_state) {
> -			case DSC_LOGIN_COMPLETE:
> -				/* recheck session is still intact. */
> -				ql_dbg(ql_dbg_disc, vha, 0x210d,
> -				    "%s %d %8phC revalidate session with ADISC\n",
> -				    __func__, __LINE__, fcport->port_name);
> -				data[0] = data[1] = 0;
> -				qla2x00_post_async_adisc_work(vha, fcport,
> -				    data);
> -				break;
> -			case DSC_DELETED:
> -				ql_dbg(ql_dbg_disc, vha, 0x210d,
> -				    "%s %d %8phC login\n", __func__, __LINE__,
> -				    fcport->port_name);
> -				fcport->d_id = ea->id;
> -				qla24xx_fcport_handle_login(vha, fcport);
> -				break;
> -			case DSC_DELETE_PEND:
> -				fcport->d_id = ea->id;
> -				break;
> -			default:
> -				fcport->d_id = ea->id;
> -				break;
> -			}
> -		} else {
> -			list_for_each_entry_safe(conflict, t, &vha->vp_fcports,
> -			    list) {
> -				if (conflict->d_id.b24 == ea->id.b24) {
> -					/* 2 fcports with conflict Nport ID or
> -					 * an existing fcport is having nport ID
> -					 * conflict with new fcport.
> -					 */
> -					ql_dbg(ql_dbg_disc, vha, 0xffff,
> -					    "%s %d %8phC DS %d\n",
> -					    __func__, __LINE__,
> -					    conflict->port_name,
> -					    conflict->disc_state);
> -
> -					conflict->scan_state = QLA_FCPORT_SCAN;
> -					qlt_schedule_sess_for_deletion(conflict);
> -				}
> -			}
> -
> -			/* create new fcport */
> -			ql_dbg(ql_dbg_disc, vha, 0x2065,
> -			    "%s %d %8phC post new sess\n",
> -			    __func__, __LINE__, ea->port_name);
> -			qla24xx_post_newsess_work(vha, &ea->id,
> -			    ea->port_name, NULL, NULL, 0);
> -		}
> -	}
> -}
> -
> -static void qla2x00_async_gpnid_sp_done(srb_t *sp, int res)
> -{
> -	struct scsi_qla_host *vha = sp->vha;
> -	struct ct_sns_req *ct_req =
> -	    (struct ct_sns_req *)sp->u.iocb_cmd.u.ctarg.req;
> -	struct ct_sns_rsp *ct_rsp =
> -	    (struct ct_sns_rsp *)sp->u.iocb_cmd.u.ctarg.rsp;
> -	struct event_arg ea;
> -	struct qla_work_evt *e;
> -	unsigned long flags;
> -
> -	if (res)
> -		ql_dbg(ql_dbg_disc, vha, 0x2066,
> -		    "Async done-%s fail res %x rscn gen %d ID %3phC. %8phC\n",
> -		    sp->name, res, sp->gen1, &ct_req->req.port_id.port_id,
> -		    ct_rsp->rsp.gpn_id.port_name);
> -	else
> -		ql_dbg(ql_dbg_disc, vha, 0x2066,
> -		    "Async done-%s good rscn gen %d ID %3phC. %8phC\n",
> -		    sp->name, sp->gen1, &ct_req->req.port_id.port_id,
> -		    ct_rsp->rsp.gpn_id.port_name);
> -
> -	memset(&ea, 0, sizeof(ea));
> -	memcpy(ea.port_name, ct_rsp->rsp.gpn_id.port_name, WWN_SIZE);
> -	ea.sp = sp;
> -	ea.id = be_to_port_id(ct_req->req.port_id.port_id);
> -	ea.rc = res;
> -
> -	spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags);
> -	list_del(&sp->elem);
> -	spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
> -
> -	if (res) {
> -		if (res == QLA_FUNCTION_TIMEOUT) {
> -			qla24xx_post_gpnid_work(sp->vha, &ea.id);
> -			/* ref: INIT */
> -			kref_put(&sp->cmd_kref, qla2x00_sp_release);
> -			return;
> -		}
> -	} else if (sp->gen1) {
> -		/* There was another RSCN for this Nport ID */
> -		qla24xx_post_gpnid_work(sp->vha, &ea.id);
> -		/* ref: INIT */
> -		kref_put(&sp->cmd_kref, qla2x00_sp_release);
> -		return;
> -	}
> -
> -	qla24xx_handle_gpnid_event(vha, &ea);
> -
> -	e = qla2x00_alloc_work(vha, QLA_EVT_UNMAP);
> -	if (!e) {
> -		/* please ignore kernel warning. otherwise, we have mem leak. */
> -		dma_free_coherent(&vha->hw->pdev->dev,
> -				  sp->u.iocb_cmd.u.ctarg.req_allocated_size,
> -				  sp->u.iocb_cmd.u.ctarg.req,
> -				  sp->u.iocb_cmd.u.ctarg.req_dma);
> -		sp->u.iocb_cmd.u.ctarg.req = NULL;
> -
> -		dma_free_coherent(&vha->hw->pdev->dev,
> -				  sp->u.iocb_cmd.u.ctarg.rsp_allocated_size,
> -				  sp->u.iocb_cmd.u.ctarg.rsp,
> -				  sp->u.iocb_cmd.u.ctarg.rsp_dma);
> -		sp->u.iocb_cmd.u.ctarg.rsp = NULL;
> -
> -		/* ref: INIT */
> -		kref_put(&sp->cmd_kref, qla2x00_sp_release);
> -		return;
> -	}
> -
> -	e->u.iosb.sp = sp;
> -	qla2x00_post_work(vha, e);
> -}
> -
> -/* Get WWPN with Nport ID. */
> -int qla24xx_async_gpnid(scsi_qla_host_t *vha, port_id_t *id)
> -{
> -	int rval = QLA_FUNCTION_FAILED;
> -	struct ct_sns_req       *ct_req;
> -	srb_t *sp, *tsp;
> -	struct ct_sns_pkt *ct_sns;
> -	unsigned long flags;
> -
> -	if (!vha->flags.online)
> -		goto done;
> -
> -	/* ref: INIT */
> -	sp = qla2x00_get_sp(vha, NULL, GFP_KERNEL);
> -	if (!sp)
> -		goto done;
> -
> -	sp->type = SRB_CT_PTHRU_CMD;
> -	sp->name = "gpnid";
> -	sp->u.iocb_cmd.u.ctarg.id = *id;
> -	sp->gen1 = 0;
> -	qla2x00_init_async_sp(sp, qla2x00_get_async_timeout(vha) + 2,
> -			      qla2x00_async_gpnid_sp_done);
> -
> -	spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags);
> -	list_for_each_entry(tsp, &vha->gpnid_list, elem) {
> -		if (tsp->u.iocb_cmd.u.ctarg.id.b24 == id->b24) {
> -			tsp->gen1++;
> -			spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
> -			/* ref: INIT */
> -			kref_put(&sp->cmd_kref, qla2x00_sp_release);
> -			goto done;
> -		}
> -	}
> -	list_add_tail(&sp->elem, &vha->gpnid_list);
> -	spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
> -
> -	sp->u.iocb_cmd.u.ctarg.req = dma_alloc_coherent(&vha->hw->pdev->dev,
> -		sizeof(struct ct_sns_pkt), &sp->u.iocb_cmd.u.ctarg.req_dma,
> -		GFP_KERNEL);
> -	sp->u.iocb_cmd.u.ctarg.req_allocated_size = sizeof(struct ct_sns_pkt);
> -	if (!sp->u.iocb_cmd.u.ctarg.req) {
> -		ql_log(ql_log_warn, vha, 0xd041,
> -		    "Failed to allocate ct_sns request.\n");
> -		goto done_free_sp;
> -	}
> -
> -	sp->u.iocb_cmd.u.ctarg.rsp = dma_alloc_coherent(&vha->hw->pdev->dev,
> -		sizeof(struct ct_sns_pkt), &sp->u.iocb_cmd.u.ctarg.rsp_dma,
> -		GFP_KERNEL);
> -	sp->u.iocb_cmd.u.ctarg.rsp_allocated_size = sizeof(struct ct_sns_pkt);
> -	if (!sp->u.iocb_cmd.u.ctarg.rsp) {
> -		ql_log(ql_log_warn, vha, 0xd042,
> -		    "Failed to allocate ct_sns request.\n");
> -		goto done_free_sp;
> -	}
> -
> -	ct_sns = (struct ct_sns_pkt *)sp->u.iocb_cmd.u.ctarg.rsp;
> -	memset(ct_sns, 0, sizeof(*ct_sns));
> -
> -	ct_sns = (struct ct_sns_pkt *)sp->u.iocb_cmd.u.ctarg.req;
> -	/* CT_IU preamble  */
> -	ct_req = qla2x00_prep_ct_req(ct_sns, GPN_ID_CMD, GPN_ID_RSP_SIZE);
> -
> -	/* GPN_ID req */
> -	ct_req->req.port_id.port_id = port_id_to_be_id(*id);
> -
> -	sp->u.iocb_cmd.u.ctarg.req_size = GPN_ID_REQ_SIZE;
> -	sp->u.iocb_cmd.u.ctarg.rsp_size = GPN_ID_RSP_SIZE;
> -	sp->u.iocb_cmd.u.ctarg.nport_handle = NPH_SNS;
> -
> -	ql_dbg(ql_dbg_disc, vha, 0x2067,
> -	    "Async-%s hdl=%x ID %3phC.\n", sp->name,
> -	    sp->handle, &ct_req->req.port_id.port_id);
> -
> -	rval = qla2x00_start_sp(sp);
> -	if (rval != QLA_SUCCESS)
> -		goto done_free_sp;
> -
> -	return rval;
> -
> -done_free_sp:
> -	spin_lock_irqsave(&vha->hw->vport_slock, flags);
> -	list_del(&sp->elem);
> -	spin_unlock_irqrestore(&vha->hw->vport_slock, flags);
> -
> -	if (sp->u.iocb_cmd.u.ctarg.req) {
> -		dma_free_coherent(&vha->hw->pdev->dev,
> -			sizeof(struct ct_sns_pkt),
> -			sp->u.iocb_cmd.u.ctarg.req,
> -			sp->u.iocb_cmd.u.ctarg.req_dma);
> -		sp->u.iocb_cmd.u.ctarg.req = NULL;
> -	}
> -	if (sp->u.iocb_cmd.u.ctarg.rsp) {
> -		dma_free_coherent(&vha->hw->pdev->dev,
> -			sizeof(struct ct_sns_pkt),
> -			sp->u.iocb_cmd.u.ctarg.rsp,
> -			sp->u.iocb_cmd.u.ctarg.rsp_dma);
> -		sp->u.iocb_cmd.u.ctarg.rsp = NULL;
> -	}
> -	/* ref: INIT */
> -	kref_put(&sp->cmd_kref, qla2x00_sp_release);
> -done:
> -	return rval;
> -}
> -
> -
> void qla24xx_async_gffid_sp_done(srb_t *sp, int res)
> {
> 	struct scsi_qla_host *vha = sp->vha;
> diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
> index ca216b820b1c..c66a0106a7fc 100644
> --- a/drivers/scsi/qla2xxx/qla_init.c
> +++ b/drivers/scsi/qla2xxx/qla_init.c
> @@ -2323,7 +2323,7 @@ qla24xx_handle_plogi_done_event(struct scsi_qla_host *vha, struct event_arg *ea)
> 			ea->fcport->login_pause = 1;
> 
> 			ql_dbg(ql_dbg_disc, vha, 0x20ed,
> -			    "%s %d %8phC NPortId %06x inuse with loopid 0x%x. post gidpn\n",
> +			    "%s %d %8phC NPortId %06x inuse with loopid 0x%x.\n",
> 			    __func__, __LINE__, ea->fcport->port_name,
> 			    ea->fcport->d_id.b24, lid);
> 		} else {
> diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
> index 6b91dcfd994d..9a7cc0ba5f58 100644
> --- a/drivers/scsi/qla2xxx/qla_iocb.c
> +++ b/drivers/scsi/qla2xxx/qla_iocb.c
> @@ -2920,7 +2920,7 @@ static void qla2x00_els_dcmd2_sp_done(srb_t *sp, int res)
> 					conflict_fcport->conflict = fcport;
> 					fcport->login_pause = 1;
> 					ql_dbg(ql_dbg_disc, vha, 0x20ed,
> -					    "%s %d %8phC pid %06x inuse with lid %#x post gidpn\n",
> +					    "%s %d %8phC pid %06x inuse with lid %#x.\n",
> 					    __func__, __LINE__,
> 					    fcport->port_name,
> 					    fcport->d_id.b24, lid);
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index 078b63b89189..bbbdf2ffb682 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -5016,7 +5016,6 @@ struct scsi_qla_host *qla2x00_create_host(struct scsi_host_template *sht,
> 	INIT_LIST_HEAD(&vha->plogi_ack_list);
> 	INIT_LIST_HEAD(&vha->qp_list);
> 	INIT_LIST_HEAD(&vha->gnl.fcports);
> -	INIT_LIST_HEAD(&vha->gpnid_list);
> 	INIT_WORK(&vha->iocb_work, qla2x00_iocb_work_fn);
> 
> 	INIT_LIST_HEAD(&vha->purex_list.head);
> @@ -5461,9 +5460,6 @@ qla2x00_do_work(struct scsi_qla_host *vha)
> 		case QLA_EVT_AENFX:
> 			qlafx00_process_aen(vha, e);
> 			break;
> -		case QLA_EVT_GPNID:
> -			qla24xx_async_gpnid(vha, &e->u.gpnid.id);
> -			break;
> 		case QLA_EVT_UNMAP:
> 			qla24xx_sp_unmap(vha, e->u.iosb.sp);
> 			break;
> -- 
> 2.19.0.rc0
> 

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

Patch

diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 0dde3fa9e258..9ee9ce613c75 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -3479,7 +3479,6 @@  enum qla_work_type {
 	QLA_EVT_ASYNC_ADISC,
 	QLA_EVT_UEVENT,
 	QLA_EVT_AENFX,
-	QLA_EVT_GPNID,
 	QLA_EVT_UNMAP,
 	QLA_EVT_NEW_SESS,
 	QLA_EVT_GPDB,
@@ -3534,9 +3533,6 @@  struct qla_work_evt {
 		struct {
 			srb_t *sp;
 		} iosb;
-		struct {
-			port_id_t id;
-		} gpnid;
 		struct {
 			port_id_t id;
 			u8 port_name[8];
@@ -3544,7 +3540,7 @@  struct qla_work_evt {
 			void *pla;
 			u8 fc4_type;
 		} new_sess;
-		struct { /*Get PDB, Get Speed, update fcport, gnl, gidpn */
+		struct { /*Get PDB, Get Speed, update fcport, gnl */
 			fc_port_t *fcport;
 			u8 opt;
 		} fcport;
@@ -5025,7 +5021,6 @@  typedef struct scsi_qla_host {
 	uint8_t n2n_port_name[WWN_SIZE];
 	uint16_t	n2n_id;
 	__le16 dport_data[4];
-	struct list_head gpnid_list;
 	struct fab_scan scan;
 	uint8_t	scm_fabric_connection_flags;
 
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
index e3256e721be1..2acddc8dc943 100644
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
@@ -721,10 +721,6 @@  extern int qla2x00_chk_ms_status(scsi_qla_host_t *, ms_iocb_entry_t *,
 	struct ct_sns_rsp *, const char *);
 extern void qla2x00_async_iocb_timeout(void *data);
 
-extern int qla24xx_post_gpnid_work(struct scsi_qla_host *, port_id_t *);
-extern int qla24xx_async_gpnid(scsi_qla_host_t *, port_id_t *);
-void qla24xx_handle_gpnid_event(scsi_qla_host_t *, struct event_arg *);
-
 int qla24xx_post_gpsc_work(struct scsi_qla_host *, fc_port_t *);
 int qla24xx_async_gpsc(scsi_qla_host_t *, fc_port_t *);
 void qla24xx_handle_gpsc_event(scsi_qla_host_t *, struct event_arg *);
diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
index 64ab070b8716..fe1eb06db654 100644
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -2949,22 +2949,6 @@  int qla24xx_async_gpsc(scsi_qla_host_t *vha, fc_port_t *fcport)
 	return rval;
 }
 
-int qla24xx_post_gpnid_work(struct scsi_qla_host *vha, port_id_t *id)
-{
-	struct qla_work_evt *e;
-
-	if (test_bit(UNLOADING, &vha->dpc_flags) ||
-	    (vha->vp_idx && test_bit(VPORT_DELETE, &vha->dpc_flags)))
-		return 0;
-
-	e = qla2x00_alloc_work(vha, QLA_EVT_GPNID);
-	if (!e)
-		return QLA_FUNCTION_FAILED;
-
-	e->u.gpnid.id = *id;
-	return qla2x00_post_work(vha, e);
-}
-
 void qla24xx_sp_unmap(scsi_qla_host_t *vha, srb_t *sp)
 {
 	struct srb_iocb *c = &sp->u.iocb_cmd;
@@ -2997,287 +2981,6 @@  void qla24xx_sp_unmap(scsi_qla_host_t *vha, srb_t *sp)
 	kref_put(&sp->cmd_kref, qla2x00_sp_release);
 }
 
-void qla24xx_handle_gpnid_event(scsi_qla_host_t *vha, struct event_arg *ea)
-{
-	fc_port_t *fcport, *conflict, *t;
-	u16 data[2];
-
-	ql_dbg(ql_dbg_disc, vha, 0xffff,
-	    "%s %d port_id: %06x\n",
-	    __func__, __LINE__, ea->id.b24);
-
-	if (ea->rc) {
-		/* cable is disconnected */
-		list_for_each_entry_safe(fcport, t, &vha->vp_fcports, list) {
-			if (fcport->d_id.b24 == ea->id.b24)
-				fcport->scan_state = QLA_FCPORT_SCAN;
-
-			qlt_schedule_sess_for_deletion(fcport);
-		}
-	} else {
-		/* cable is connected */
-		fcport = qla2x00_find_fcport_by_wwpn(vha, ea->port_name, 1);
-		if (fcport) {
-			list_for_each_entry_safe(conflict, t, &vha->vp_fcports,
-			    list) {
-				if ((conflict->d_id.b24 == ea->id.b24) &&
-				    (fcport != conflict))
-					/*
-					 * 2 fcports with conflict Nport ID or
-					 * an existing fcport is having nport ID
-					 * conflict with new fcport.
-					 */
-
-					conflict->scan_state = QLA_FCPORT_SCAN;
-
-				qlt_schedule_sess_for_deletion(conflict);
-			}
-
-			fcport->scan_needed = 0;
-			fcport->rscn_gen++;
-			fcport->scan_state = QLA_FCPORT_FOUND;
-			fcport->flags |= FCF_FABRIC_DEVICE;
-			if (fcport->login_retry == 0) {
-				fcport->login_retry =
-					vha->hw->login_retry_count;
-				ql_dbg(ql_dbg_disc, vha, 0xffff,
-				    "Port login retry %8phN, lid 0x%04x cnt=%d.\n",
-				    fcport->port_name, fcport->loop_id,
-				    fcport->login_retry);
-			}
-			switch (fcport->disc_state) {
-			case DSC_LOGIN_COMPLETE:
-				/* recheck session is still intact. */
-				ql_dbg(ql_dbg_disc, vha, 0x210d,
-				    "%s %d %8phC revalidate session with ADISC\n",
-				    __func__, __LINE__, fcport->port_name);
-				data[0] = data[1] = 0;
-				qla2x00_post_async_adisc_work(vha, fcport,
-				    data);
-				break;
-			case DSC_DELETED:
-				ql_dbg(ql_dbg_disc, vha, 0x210d,
-				    "%s %d %8phC login\n", __func__, __LINE__,
-				    fcport->port_name);
-				fcport->d_id = ea->id;
-				qla24xx_fcport_handle_login(vha, fcport);
-				break;
-			case DSC_DELETE_PEND:
-				fcport->d_id = ea->id;
-				break;
-			default:
-				fcport->d_id = ea->id;
-				break;
-			}
-		} else {
-			list_for_each_entry_safe(conflict, t, &vha->vp_fcports,
-			    list) {
-				if (conflict->d_id.b24 == ea->id.b24) {
-					/* 2 fcports with conflict Nport ID or
-					 * an existing fcport is having nport ID
-					 * conflict with new fcport.
-					 */
-					ql_dbg(ql_dbg_disc, vha, 0xffff,
-					    "%s %d %8phC DS %d\n",
-					    __func__, __LINE__,
-					    conflict->port_name,
-					    conflict->disc_state);
-
-					conflict->scan_state = QLA_FCPORT_SCAN;
-					qlt_schedule_sess_for_deletion(conflict);
-				}
-			}
-
-			/* create new fcport */
-			ql_dbg(ql_dbg_disc, vha, 0x2065,
-			    "%s %d %8phC post new sess\n",
-			    __func__, __LINE__, ea->port_name);
-			qla24xx_post_newsess_work(vha, &ea->id,
-			    ea->port_name, NULL, NULL, 0);
-		}
-	}
-}
-
-static void qla2x00_async_gpnid_sp_done(srb_t *sp, int res)
-{
-	struct scsi_qla_host *vha = sp->vha;
-	struct ct_sns_req *ct_req =
-	    (struct ct_sns_req *)sp->u.iocb_cmd.u.ctarg.req;
-	struct ct_sns_rsp *ct_rsp =
-	    (struct ct_sns_rsp *)sp->u.iocb_cmd.u.ctarg.rsp;
-	struct event_arg ea;
-	struct qla_work_evt *e;
-	unsigned long flags;
-
-	if (res)
-		ql_dbg(ql_dbg_disc, vha, 0x2066,
-		    "Async done-%s fail res %x rscn gen %d ID %3phC. %8phC\n",
-		    sp->name, res, sp->gen1, &ct_req->req.port_id.port_id,
-		    ct_rsp->rsp.gpn_id.port_name);
-	else
-		ql_dbg(ql_dbg_disc, vha, 0x2066,
-		    "Async done-%s good rscn gen %d ID %3phC. %8phC\n",
-		    sp->name, sp->gen1, &ct_req->req.port_id.port_id,
-		    ct_rsp->rsp.gpn_id.port_name);
-
-	memset(&ea, 0, sizeof(ea));
-	memcpy(ea.port_name, ct_rsp->rsp.gpn_id.port_name, WWN_SIZE);
-	ea.sp = sp;
-	ea.id = be_to_port_id(ct_req->req.port_id.port_id);
-	ea.rc = res;
-
-	spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags);
-	list_del(&sp->elem);
-	spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
-
-	if (res) {
-		if (res == QLA_FUNCTION_TIMEOUT) {
-			qla24xx_post_gpnid_work(sp->vha, &ea.id);
-			/* ref: INIT */
-			kref_put(&sp->cmd_kref, qla2x00_sp_release);
-			return;
-		}
-	} else if (sp->gen1) {
-		/* There was another RSCN for this Nport ID */
-		qla24xx_post_gpnid_work(sp->vha, &ea.id);
-		/* ref: INIT */
-		kref_put(&sp->cmd_kref, qla2x00_sp_release);
-		return;
-	}
-
-	qla24xx_handle_gpnid_event(vha, &ea);
-
-	e = qla2x00_alloc_work(vha, QLA_EVT_UNMAP);
-	if (!e) {
-		/* please ignore kernel warning. otherwise, we have mem leak. */
-		dma_free_coherent(&vha->hw->pdev->dev,
-				  sp->u.iocb_cmd.u.ctarg.req_allocated_size,
-				  sp->u.iocb_cmd.u.ctarg.req,
-				  sp->u.iocb_cmd.u.ctarg.req_dma);
-		sp->u.iocb_cmd.u.ctarg.req = NULL;
-
-		dma_free_coherent(&vha->hw->pdev->dev,
-				  sp->u.iocb_cmd.u.ctarg.rsp_allocated_size,
-				  sp->u.iocb_cmd.u.ctarg.rsp,
-				  sp->u.iocb_cmd.u.ctarg.rsp_dma);
-		sp->u.iocb_cmd.u.ctarg.rsp = NULL;
-
-		/* ref: INIT */
-		kref_put(&sp->cmd_kref, qla2x00_sp_release);
-		return;
-	}
-
-	e->u.iosb.sp = sp;
-	qla2x00_post_work(vha, e);
-}
-
-/* Get WWPN with Nport ID. */
-int qla24xx_async_gpnid(scsi_qla_host_t *vha, port_id_t *id)
-{
-	int rval = QLA_FUNCTION_FAILED;
-	struct ct_sns_req       *ct_req;
-	srb_t *sp, *tsp;
-	struct ct_sns_pkt *ct_sns;
-	unsigned long flags;
-
-	if (!vha->flags.online)
-		goto done;
-
-	/* ref: INIT */
-	sp = qla2x00_get_sp(vha, NULL, GFP_KERNEL);
-	if (!sp)
-		goto done;
-
-	sp->type = SRB_CT_PTHRU_CMD;
-	sp->name = "gpnid";
-	sp->u.iocb_cmd.u.ctarg.id = *id;
-	sp->gen1 = 0;
-	qla2x00_init_async_sp(sp, qla2x00_get_async_timeout(vha) + 2,
-			      qla2x00_async_gpnid_sp_done);
-
-	spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags);
-	list_for_each_entry(tsp, &vha->gpnid_list, elem) {
-		if (tsp->u.iocb_cmd.u.ctarg.id.b24 == id->b24) {
-			tsp->gen1++;
-			spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
-			/* ref: INIT */
-			kref_put(&sp->cmd_kref, qla2x00_sp_release);
-			goto done;
-		}
-	}
-	list_add_tail(&sp->elem, &vha->gpnid_list);
-	spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
-
-	sp->u.iocb_cmd.u.ctarg.req = dma_alloc_coherent(&vha->hw->pdev->dev,
-		sizeof(struct ct_sns_pkt), &sp->u.iocb_cmd.u.ctarg.req_dma,
-		GFP_KERNEL);
-	sp->u.iocb_cmd.u.ctarg.req_allocated_size = sizeof(struct ct_sns_pkt);
-	if (!sp->u.iocb_cmd.u.ctarg.req) {
-		ql_log(ql_log_warn, vha, 0xd041,
-		    "Failed to allocate ct_sns request.\n");
-		goto done_free_sp;
-	}
-
-	sp->u.iocb_cmd.u.ctarg.rsp = dma_alloc_coherent(&vha->hw->pdev->dev,
-		sizeof(struct ct_sns_pkt), &sp->u.iocb_cmd.u.ctarg.rsp_dma,
-		GFP_KERNEL);
-	sp->u.iocb_cmd.u.ctarg.rsp_allocated_size = sizeof(struct ct_sns_pkt);
-	if (!sp->u.iocb_cmd.u.ctarg.rsp) {
-		ql_log(ql_log_warn, vha, 0xd042,
-		    "Failed to allocate ct_sns request.\n");
-		goto done_free_sp;
-	}
-
-	ct_sns = (struct ct_sns_pkt *)sp->u.iocb_cmd.u.ctarg.rsp;
-	memset(ct_sns, 0, sizeof(*ct_sns));
-
-	ct_sns = (struct ct_sns_pkt *)sp->u.iocb_cmd.u.ctarg.req;
-	/* CT_IU preamble  */
-	ct_req = qla2x00_prep_ct_req(ct_sns, GPN_ID_CMD, GPN_ID_RSP_SIZE);
-
-	/* GPN_ID req */
-	ct_req->req.port_id.port_id = port_id_to_be_id(*id);
-
-	sp->u.iocb_cmd.u.ctarg.req_size = GPN_ID_REQ_SIZE;
-	sp->u.iocb_cmd.u.ctarg.rsp_size = GPN_ID_RSP_SIZE;
-	sp->u.iocb_cmd.u.ctarg.nport_handle = NPH_SNS;
-
-	ql_dbg(ql_dbg_disc, vha, 0x2067,
-	    "Async-%s hdl=%x ID %3phC.\n", sp->name,
-	    sp->handle, &ct_req->req.port_id.port_id);
-
-	rval = qla2x00_start_sp(sp);
-	if (rval != QLA_SUCCESS)
-		goto done_free_sp;
-
-	return rval;
-
-done_free_sp:
-	spin_lock_irqsave(&vha->hw->vport_slock, flags);
-	list_del(&sp->elem);
-	spin_unlock_irqrestore(&vha->hw->vport_slock, flags);
-
-	if (sp->u.iocb_cmd.u.ctarg.req) {
-		dma_free_coherent(&vha->hw->pdev->dev,
-			sizeof(struct ct_sns_pkt),
-			sp->u.iocb_cmd.u.ctarg.req,
-			sp->u.iocb_cmd.u.ctarg.req_dma);
-		sp->u.iocb_cmd.u.ctarg.req = NULL;
-	}
-	if (sp->u.iocb_cmd.u.ctarg.rsp) {
-		dma_free_coherent(&vha->hw->pdev->dev,
-			sizeof(struct ct_sns_pkt),
-			sp->u.iocb_cmd.u.ctarg.rsp,
-			sp->u.iocb_cmd.u.ctarg.rsp_dma);
-		sp->u.iocb_cmd.u.ctarg.rsp = NULL;
-	}
-	/* ref: INIT */
-	kref_put(&sp->cmd_kref, qla2x00_sp_release);
-done:
-	return rval;
-}
-
-
 void qla24xx_async_gffid_sp_done(srb_t *sp, int res)
 {
 	struct scsi_qla_host *vha = sp->vha;
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index ca216b820b1c..c66a0106a7fc 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -2323,7 +2323,7 @@  qla24xx_handle_plogi_done_event(struct scsi_qla_host *vha, struct event_arg *ea)
 			ea->fcport->login_pause = 1;
 
 			ql_dbg(ql_dbg_disc, vha, 0x20ed,
-			    "%s %d %8phC NPortId %06x inuse with loopid 0x%x. post gidpn\n",
+			    "%s %d %8phC NPortId %06x inuse with loopid 0x%x.\n",
 			    __func__, __LINE__, ea->fcport->port_name,
 			    ea->fcport->d_id.b24, lid);
 		} else {
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index 6b91dcfd994d..9a7cc0ba5f58 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -2920,7 +2920,7 @@  static void qla2x00_els_dcmd2_sp_done(srb_t *sp, int res)
 					conflict_fcport->conflict = fcport;
 					fcport->login_pause = 1;
 					ql_dbg(ql_dbg_disc, vha, 0x20ed,
-					    "%s %d %8phC pid %06x inuse with lid %#x post gidpn\n",
+					    "%s %d %8phC pid %06x inuse with lid %#x.\n",
 					    __func__, __LINE__,
 					    fcport->port_name,
 					    fcport->d_id.b24, lid);
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 078b63b89189..bbbdf2ffb682 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -5016,7 +5016,6 @@  struct scsi_qla_host *qla2x00_create_host(struct scsi_host_template *sht,
 	INIT_LIST_HEAD(&vha->plogi_ack_list);
 	INIT_LIST_HEAD(&vha->qp_list);
 	INIT_LIST_HEAD(&vha->gnl.fcports);
-	INIT_LIST_HEAD(&vha->gpnid_list);
 	INIT_WORK(&vha->iocb_work, qla2x00_iocb_work_fn);
 
 	INIT_LIST_HEAD(&vha->purex_list.head);
@@ -5461,9 +5460,6 @@  qla2x00_do_work(struct scsi_qla_host *vha)
 		case QLA_EVT_AENFX:
 			qlafx00_process_aen(vha, e);
 			break;
-		case QLA_EVT_GPNID:
-			qla24xx_async_gpnid(vha, &e->u.gpnid.id);
-			break;
 		case QLA_EVT_UNMAP:
 			qla24xx_sp_unmap(vha, e->u.iosb.sp);
 			break;