diff mbox

[05/21] lpfc: Reject RDP ELS if port has no login

Message ID 577d5d9e.DGbam2YjJ7SVt9GU%james.smart@broadcom.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

James Smart July 6, 2016, 7:35 p.m. UTC
Reject RDP ELS if port has no login

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
---
 drivers/scsi/lpfc/lpfc_els.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Hannes Reinecke July 15, 2016, 1:09 p.m. UTC | #1
On 07/06/2016 09:35 PM, James Smart wrote:
> 
> Reject RDP ELS if port has no login
> 
> Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
> Signed-off-by: James Smart <james.smart@broadcom.com>
> ---
>  drivers/scsi/lpfc/lpfc_els.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
> index 02e3a1f..861270e 100644
> --- a/drivers/scsi/lpfc/lpfc_els.c
> +++ b/drivers/scsi/lpfc/lpfc_els.c
> @@ -5243,6 +5243,12 @@ lpfc_els_rcv_rdp(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
>  			 be32_to_cpu(rdp_req->nport_id_desc.nport_id),
>  			 be32_to_cpu(rdp_req->nport_id_desc.length));
>  
> +	if (!(ndlp->nlp_flag & NLP_RPI_REGISTERED) &&
> +	    !phba->cfg_enable_SmartSAN) {
> +		rjt_err = LSRJT_UNABLE_TPC;
> +		rjt_expl = LSEXP_PORT_LOGIN_REQ;
> +		goto error;
> +	}
>  	if (sizeof(struct fc_rdp_nport_desc) !=
>  			be32_to_cpu(rdp_req->rdp_des_length))
>  		goto rjt_logerr;
> 
Reviewed-by: Hannes Reinecke <hare@suse.com>

Cheers,

Hannes
diff mbox

Patch

diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 02e3a1f..861270e 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -5243,6 +5243,12 @@  lpfc_els_rcv_rdp(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
 			 be32_to_cpu(rdp_req->nport_id_desc.nport_id),
 			 be32_to_cpu(rdp_req->nport_id_desc.length));
 
+	if (!(ndlp->nlp_flag & NLP_RPI_REGISTERED) &&
+	    !phba->cfg_enable_SmartSAN) {
+		rjt_err = LSRJT_UNABLE_TPC;
+		rjt_expl = LSEXP_PORT_LOGIN_REQ;
+		goto error;
+	}
 	if (sizeof(struct fc_rdp_nport_desc) !=
 			be32_to_cpu(rdp_req->rdp_des_length))
 		goto rjt_logerr;