Daniel Wagner afa6b0
From: Quinn Tran <qutran@marvell.com>
Daniel Wagner afa6b0
Date: Wed, 8 Jun 2022 04:58:44 -0700
Daniel Wagner afa6b0
Subject: scsi: qla2xxx: edif: Tear down session if keys have been removed
Denis Kirjanov 718367
Patch-mainline: v5.20-rc1
Daniel Wagner afa6b0
Git-commit: d7e2e4a68fc047a025afcd200e6b7e1fbc8b1999
Daniel Wagner afa6b0
References: bsc#1201958
Daniel Wagner afa6b0
Daniel Wagner afa6b0
If all keys for a session have been deleted, trigger a session teardown.
Daniel Wagner afa6b0
Daniel Wagner afa6b0
Link: https://lore.kernel.org/r/20220608115849.16693-6-njavali@marvell.com
Daniel Wagner afa6b0
Fixes: dd30706e73b7 ("scsi: qla2xxx: edif: Add key update")
Daniel Wagner afa6b0
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Daniel Wagner afa6b0
Signed-off-by: Quinn Tran <qutran@marvell.com>
Daniel Wagner afa6b0
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Daniel Wagner afa6b0
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Daniel Wagner afa6b0
Acked-by: Daniel Wagner <dwagner@suse.de>
Daniel Wagner afa6b0
---
Daniel Wagner afa6b0
 drivers/scsi/qla2xxx/qla_def.h |    5 +++++
Daniel Wagner afa6b0
 drivers/scsi/qla2xxx/qla_isr.c |    1 +
Daniel Wagner afa6b0
 2 files changed, 6 insertions(+)
Daniel Wagner afa6b0
Daniel Wagner afa6b0
--- a/drivers/scsi/qla2xxx/qla_def.h
Daniel Wagner afa6b0
+++ b/drivers/scsi/qla2xxx/qla_def.h
Daniel Wagner afa6b0
@@ -2159,6 +2159,11 @@ typedef struct {
Daniel Wagner afa6b0
 #define CS_IOCB_ERROR		0x31	/* Generic error for IOCB request
Daniel Wagner afa6b0
 					   failure */
Daniel Wagner afa6b0
 #define CS_REJECT_RECEIVED	0x4E	/* Reject received */
Daniel Wagner afa6b0
+#define CS_EDIF_AUTH_ERROR	0x63	/* decrypt error */
Daniel Wagner afa6b0
+#define CS_EDIF_PAD_LEN_ERROR	0x65	/* pad > frame size, not 4byte align */
Daniel Wagner afa6b0
+#define CS_EDIF_INV_REQ		0x66	/* invalid request */
Daniel Wagner afa6b0
+#define CS_EDIF_SPI_ERROR	0x67	/* rx frame unable to locate sa */
Daniel Wagner afa6b0
+#define CS_EDIF_HDR_ERROR	0x69	/* data frame != expected len */
Daniel Wagner afa6b0
 #define CS_BAD_PAYLOAD		0x80	/* Driver defined */
Daniel Wagner afa6b0
 #define CS_UNKNOWN		0x81	/* Driver defined */
Daniel Wagner afa6b0
 #define CS_RETRY		0x82	/* Driver defined */
Daniel Wagner afa6b0
--- a/drivers/scsi/qla2xxx/qla_isr.c
Daniel Wagner afa6b0
+++ b/drivers/scsi/qla2xxx/qla_isr.c
Daniel Wagner afa6b0
@@ -3436,6 +3436,7 @@ qla2x00_status_entry(scsi_qla_host_t *vh
Daniel Wagner afa6b0
 	case CS_PORT_UNAVAILABLE:
Daniel Wagner afa6b0
 	case CS_TIMEOUT:
Daniel Wagner afa6b0
 	case CS_RESET:
Daniel Wagner afa6b0
+	case CS_EDIF_INV_REQ:
Daniel Wagner afa6b0
 
Daniel Wagner afa6b0
 		/*
Daniel Wagner afa6b0
 		 * We are going to have the fc class block the rport