[PATCH RFC net-next v2 0/5] tls: perform TLS 1.3 KeyUpdate in the kernel
Martin Belanger
martin.nvme.dev at gmail.com
Wed Oct 28 08:12:43 PDT 2026
On 10/28/26 11:01, Chuck Lever wrote:
>
> I get that dropping the connection is bad; the current weak-ass
> implementation is meant to handle KeyUpdate until we have a proper
> spec-conformant implementation.
>
> My concern here is if the current design is malfunctioning in LTS
> kernels, the only mechanism we have is to fix it upstream and backport
> the fix. I don't believe stable@ would be happy absorbing this full
> series.
>
> Your commit message claims the connection stalls rather than getting
> replaced. If that's true, that needs to be fixed before this series
> gets merged. Can you confirm? I don't expect such a fix would be large,
> but the ordering matters.
>
Yes, for nvme-tcp. Since 6.7, tls_sw_read_sock() returns -EINVAL for a
KeyUpdate record. nvme_tcp_io_work() then stops without error recovery,
and the queue stalls until a command times out. Only the timeout handler
replaces the connection.
The fix is small: "nvme-tcp: start error recovery when read_sock fails".
I posted it on Monday, and Keith applied v2 to nvme-7.4 yesterday:
https://lists.infradead.org/pipermail/linux-nvme/2026-October/066937.html
The queue now starts error recovery at once and reconnects. It has no
Fixes: tag. I will ask Keith to add Fixes: be8e82caa685 ("nvme-tcp:
enable TLS handshake upcall") and Cc: stable, so it reaches the LTS
kernels before this series.
I have not checked sunrpc. Does xprtsock replace the connection when
tls_sw_read_sock() fails, or does it stall too?
Martin
More information about the Linux-nvme
mailing list