scsi: qla2xxx: edif: Tear down session if keys have been removed
authorQuinn Tran <qutran@marvell.com>
Wed, 8 Jun 2022 11:58:44 +0000 (04:58 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:23:42 +0000 (14:23 +0200)
[ Upstream commit d7e2e4a68fc047a025afcd200e6b7e1fbc8b1999 ]

If all keys for a session have been deleted, trigger a session teardown.

Link: https://lore.kernel.org/r/20220608115849.16693-6-njavali@marvell.com
Fixes: dd30706e73b7 ("scsi: qla2xxx: edif: Add key update")
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/qla2xxx/qla_def.h
drivers/scsi/qla2xxx/qla_isr.c

index 883b3fb07c2c668c52fea31f4384b58c6727e2b2..4fc289815ccb85c68ba5fc5a4b6db32f45947def 100644 (file)
@@ -2158,6 +2158,11 @@ typedef struct {
 #define CS_IOCB_ERROR          0x31    /* Generic error for IOCB request
                                           failure */
 #define CS_REJECT_RECEIVED     0x4E    /* Reject received */
+#define CS_EDIF_AUTH_ERROR     0x63    /* decrypt error */
+#define CS_EDIF_PAD_LEN_ERROR  0x65    /* pad > frame size, not 4byte align */
+#define CS_EDIF_INV_REQ                0x66    /* invalid request */
+#define CS_EDIF_SPI_ERROR      0x67    /* rx frame unable to locate sa */
+#define CS_EDIF_HDR_ERROR      0x69    /* data frame != expected len */
 #define CS_BAD_PAYLOAD         0x80    /* Driver defined */
 #define CS_UNKNOWN             0x81    /* Driver defined */
 #define CS_RETRY               0x82    /* Driver defined */
index c3711ab68c3d6fff9652b771ab8c4b96fa538fc5..c41a965eb4a72de016bd1610cb0a4daaec08ce11 100644 (file)
@@ -3420,6 +3420,7 @@ check_scsi_status:
        case CS_PORT_UNAVAILABLE:
        case CS_TIMEOUT:
        case CS_RESET:
+       case CS_EDIF_INV_REQ:
 
                /*
                 * We are going to have the fc class block the rport