Centos-kernel-stream-9/drivers/target
Maurizio Lombardi 4c3502dcc1 scsi: target: iscsi: Fix timeout on deleted connection
JIRA: https://issues.redhat.com/browse/RHEL-93481

NOPIN response timer may expire on a deleted connection and crash with
such logs:

Did not receive response to NOPIN on CID: 0, failing connection for I_T Nexus (null),i,0x00023d000125,iqn.2017-01.com.iscsi.target,t,0x3d

BUG: Kernel NULL pointer dereference on read at 0x00000000
NIP  strlcpy+0x8/0xb0
LR iscsit_fill_cxn_timeout_err_stats+0x5c/0xc0 [iscsi_target_mod]
Call Trace:
 iscsit_handle_nopin_response_timeout+0xfc/0x120 [iscsi_target_mod]
 call_timer_fn+0x58/0x1f0
 run_timer_softirq+0x740/0x860
 __do_softirq+0x16c/0x420
 irq_exit+0x188/0x1c0
 timer_interrupt+0x184/0x410

That is because nopin response timer may be re-started on nopin timer
expiration.

Stop nopin timer before stopping the nopin response timer to be sure
that no one of them will be re-started.

Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com>
Link: https://lore.kernel.org/r/20241224101757.32300-1-d.bogdanov@yadro.com
Reviewed-by: Maurizio Lombardi <mlombard@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit 7f533cc5ee4c4436cee51dc58e81dfd9c3384418)
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
2025-05-26 12:00:31 +02:00
..
iscsi scsi: target: iscsi: Fix timeout on deleted connection 2025-05-26 12:00:31 +02:00
loopback scsi: target: tcm_loop: Fix wrong abort tag 2025-05-26 12:00:31 +02:00
sbp
tcm_fc
tcm_remote
Kconfig
Makefile
target_core_alua.c
target_core_alua.h
target_core_configfs.c scsi: target: Replace deprecated strncpy() with strscpy() 2025-05-26 12:00:31 +02:00
target_core_device.c scsi: target: core: Fix null-ptr-deref in target_alloc_device() 2024-11-07 16:34:06 +00:00
target_core_fabric_configfs.c
target_core_fabric_lib.c
target_core_file.c
target_core_file.h
target_core_hba.c
target_core_iblock.c
target_core_iblock.h
target_core_internal.h
target_core_pr.c
target_core_pr.h
target_core_pscsi.c scsi: target: Fix incorrect function name in pscsi_create_type_disk() 2025-05-26 12:00:30 +02:00
target_core_pscsi.h
target_core_rd.c
target_core_rd.h
target_core_sbc.c
target_core_spc.c scsi: target: spc: Fix loop traversal in spc_rsoc_get_descr() 2025-05-26 12:00:31 +02:00
target_core_stat.c scsi: target: core: Add line break to status show 2025-05-26 12:00:30 +02:00
target_core_tmr.c
target_core_tpg.c
target_core_transport.c
target_core_ua.c
target_core_ua.h
target_core_user.c scsi: target: tcmu: Constify some structures 2025-05-26 12:00:30 +02:00
target_core_xcopy.c
target_core_xcopy.h