Re: [PATCH RFC net-next v2 0/5] tls: perform TLS 1.3 KeyUpdate in the kernel

From: Martin Belanger

Date: Wed Oct 28 2026 - 11:18:07 EST




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