linux/drivers/nvme/host
Wilfred Mallawa 2c22e2a1b6 nvme/tcp: handle tls partially sent records in write_space()
[ Upstream commit 5a869d0177 ]

With TLS enabled, records that are encrypted and appended to TLS TX
list can fail to see a retry if the underlying TCP socket is busy, for
example, hitting an EAGAIN from tcp_sendmsg_locked(). This is not known
to the NVMe TCP driver, as the TLS layer successfully generated a record.

Typically, the TLS write_space() callback would ensure such records are
retried, but in the NVMe TCP Host driver, write_space() invokes
nvme_tcp_write_space(). This causes a partially sent record in the TLS TX
list to timeout after not being retried.

This patch fixes the above by calling queue->write_space(), which calls
into the TLS layer to retry any pending records.

Fixes: be8e82caa6 ("nvme-tcp: enable TLS handshake upcall")
Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-10-23 16:24:37 +02:00
..
apple.c nvme: fix multiple spelling and grammar issues in host drivers 2025-07-17 13:38:06 +02:00
auth.c nvme-auth: update sc_c in host response 2025-10-23 16:24:36 +02:00
constants.c nvme: fix typo in status code constant for self-test in progress 2025-07-17 13:38:07 +02:00
core.c nvme: fix PI insert on write 2025-09-02 12:21:42 -07:00
fabrics.c nvme: spelling fixes 2025-06-04 10:23:28 +02:00
fabrics.h nvme: spelling fixes 2025-06-04 10:23:28 +02:00
fault_inject.c fault-inject: improve build for CONFIG_FAULT_INJECTION=n 2024-09-01 20:43:33 -07:00
fc.c nvme: fix various comment typos 2025-07-31 06:35:58 -07:00
fc.h nvme-fc: Update header and host for common definitions for LS handling 2020-05-09 16:18:33 -06:00
hwmon.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ioctl.c nvme: always punt polled uring_cmd end_io work to task_work 2025-06-13 15:18:34 -06:00
Kconfig block-6.16-20250606 2025-06-06 13:12:50 -07:00
Makefile nvme: rework NVME_AUTH Kconfig selection 2023-10-12 08:04:49 -07:00
multipath.c nvme-multipath: Skip nr_active increments in RETRY disposition 2025-10-23 16:24:32 +02:00
nvme.h nvme: fix multiple spelling and grammar issues in host drivers 2025-07-17 13:38:06 +02:00
pci.c nvme-pci: Add TUXEDO IBS Gen8 to Samsung sleep quirk 2025-10-19 16:37:29 +02:00
pr.c nvme: fix command limits status code 2025-06-04 09:51:10 +02:00
rdma.c nvme: fix multiple spelling and grammar issues in host drivers 2025-07-17 13:38:06 +02:00
sysfs.c for-6.16/block-20250523 2025-05-26 11:39:36 -07:00
tcp.c nvme/tcp: handle tls partially sent records in write_space() 2025-10-23 16:24:37 +02:00
trace.c nvme: parse reservation commands's action and rtype to string 2024-11-13 08:51:24 -08:00
trace.h nvme: fix async event trace event 2023-04-13 08:59:04 +02:00
zns.c nvme: zns: Simplify nvme_zone_parse_entry() 2025-03-20 16:53:55 -07:00