lpfc: Reject RDP ELS if port has no login
authorJames Smart <james.smart@broadcom.com>
Wed, 6 Jul 2016 19:35:58 +0000 (12:35 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 15 Jul 2016 19:25:06 +0000 (15:25 -0400)
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>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_els.c

index 02e3a1f..861270e 100644 (file)
@@ -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;