Hi Martin, This series has a few bug fixes for the driver. Note, #1 only fixes the crash in the kernel. The complete fix for clean ACL deletion from initiator side is in works and requires a discussion. As of now initiator is not aware that target no longer wants talking to it, that implies unneeded timeout. It might be fixed by making LOGO explicit on session deletion but it's an issue I want to raise first before making the change. Whether we need implicit LOGO in qla2xxx, explicit or use both. Also, an unsolicited ABTS from a port without session would still result in BA_RJT response instead of frame discard and LOGO ELS, as specified in FCP (12.3.3 Target FCP_Port response to Exchange termination): When an ABTS-LS is received at the target FCP_Port, it shall abort the designated Exchange and return one of the following responses: a) the target FCP_Port shall discard the ABTS-LS and transmit a LOGO ELS if the Nx_Port issuing the ABTS-LS is not currently logged in (i.e., no N_Port Login exists); FWIW, the target driver can receive ABTS as part of ABORT TASK/LUN RESET/CLEAR TASK SET TMFs and in case of failed sequence retransmission requests, exchange or sequence errors. IIRC, some initiators requeue SCSI commands if BA_RJT is received. Therefore, a timely LOGO will prevent a perceived session freeze on the initiators. Thanks, Roman Roman Bolshakov (4): scsi: qla2xxx: Ignore NULL pointer in tcm_qla2xxx_free_mcmd scsi: qla2xxx: Initialize free_work before flushing it scsi: qla2xxx: Drop superfluous INIT_WORK of del_work scsi: qla2xxx: Change discovery state before PLOGI drivers/scsi/qla2xxx/qla_init.c | 2 ++ drivers/scsi/qla2xxx/qla_target.c | 2 -- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) -- 2.22.0