linux/drivers/target
Leon Romanovsky a8ddfd2425 scsi: target: Clear cmd_cnt when initial counter enrollment fails
When target_get_sess_cmd() fails during session shutdown because
percpu_ref_tryget_live() returns false, the command keeps the
se_cmd->cmd_cnt pointer that __target_init_cmd() assigned earlier
without owning a reference. Final release through
target_release_cmd_kref() then issues an unmatched percpu_ref_put().

Commit 8e288be860 ("scsi: target: Pass in cmd counter to use during
cmd setup") moved the cmd_cnt assignment ahead of the reference
acquisition.  Clear se_cmd->cmd_cnt whenever the initial
target_get_sess_cmd() fails in target_init_cmd() and
target_submit_tmr(), so release performs exactly one matching put per
acquired reference.

Fixes: 8e288be860 ("scsi: target: Pass in cmd counter to use during cmd setup")
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Link: https://patch.msgid.link/20260722-reference-count-underflow-in-target-v1-1-63ab664f12fd@nvidia.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-07-28 21:52:09 -04:00
..
iscsi scsi: target: Use constant-time crypto_memneq() for CHAP digests 2026-06-08 17:20:33 -04:00
loopback Merge branch 7.1/scsi-fixes into 7.2/scsi-staging 2026-06-15 21:01:30 -04:00
sbp scsi: target: Use driver completion preference by default 2026-02-28 21:04:02 -05:00
tcm_fc scsi: target: Use driver completion preference by default 2026-02-28 21:04:02 -05:00
tcm_remote Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
Kconfig scsi: target: Add virtual remote target 2023-03-16 23:36:37 -04:00
Makefile scsi: target: Add virtual remote target 2023-03-16 23:36:37 -04:00
target_core_alua.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
target_core_alua.h
target_core_configfs.c scsi: target: configfs: Bound snprintf() return in tg_pt_gp_members_show() 2026-04-13 22:43:56 -04:00
target_core_device.c scsi: target: core: Fix complete_type use 2026-03-10 21:32:01 -04:00
target_core_fabric_configfs.c scsi: target: Allow userspace to set the completion type 2026-02-28 21:04:03 -05:00
target_core_fabric_lib.c scsi: target: Bound PR-OUT TransportID parsing to the received buffer 2026-07-12 22:21:22 -04:00
target_core_file.c for-7.1/block-20260411 2026-04-13 15:51:31 -07:00
target_core_file.h
target_core_hba.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
target_core_iblock.c scsi: target: iblock: Fix wrong PR ops NULL check for PREEMPT/RELEASE 2026-07-28 21:52:08 -04:00
target_core_iblock.h scsi: target: iblock: Allow iblock devices to be shared 2025-07-24 21:39:01 -04:00
target_core_internal.h scsi: target: Bound PR-OUT TransportID parsing to the received buffer 2026-07-12 22:21:22 -04:00
target_core_pr.c scsi: target: core: Fix iSCSI ISID use-after-free in REGISTER AND MOVE 2026-07-12 22:21:22 -04:00
target_core_pr.h
target_core_pscsi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
target_core_pscsi.h target: port block device access to file 2024-02-25 12:05:25 +01:00
target_core_rd.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
target_core_rd.h
target_core_sbc.c scsi: target: core: Fix integer overflow in UNMAP bounds check 2026-03-10 21:56:39 -04:00
target_core_spc.c SCSI misc on 20260212 2026-02-12 15:43:02 -08:00
target_core_stat.c scsi: target: Move LUN stats to per-CPU 2025-11-02 22:06:12 -05:00
target_core_tmr.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
target_core_tpg.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
target_core_transport.c scsi: target: Clear cmd_cnt when initial counter enrollment fails 2026-07-28 21:52:09 -04:00
target_core_ua.c
target_core_ua.h
target_core_user.c uio: replace deprecated mmap hook with mmap_prepare in uio_info 2026-04-05 13:53:44 -07:00
target_core_xcopy.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
target_core_xcopy.h