On Mon, Aug 3, 2026, at 6:47 PM, Jakub Kicinski wrote: > On Sun, 26 Jul 2026 20:33:33 -0400 Chuck Lever wrote: >> - /* Do not use async mode if record is non-data */ >> + /* Do not use async mode if record is non-data, or if it >> + * is empty: the receive loop frees an empty record's skb, >> + * so its decryption must have completed. >> + */ >> if (tlm->control == TLS_RECORD_TYPE_DATA) >> - darg.async = ctx->async_capable; >> + darg.async = ctx->async_capable && to_decrypt; > > I vaguely recall that we depend on all records being async > uniformly within a single recvmsg call That holds, but it keys off the accumulated async flag rather than darg.async, so a synchronous record among async ones is still queued on rx_list. Empty records return before that block and copy nothing. -- Chuck Lever
- Re: [PATCH net 1/9] net/tls: Bound time spent... Jakub Kicinski
- [PATCH net 7/9] selftests: tls: skip the zero_len tests wh... Chuck Lever
- [PATCH net 2/9] net/tls: Consume empty data records in tls... Chuck Lever
- Re: [PATCH net 2/9] net/tls: Consume empty data recor... Sabrina Dubroca
- [PATCH net 8/9] selftests: tls: cover splice on a nonblock... Chuck Lever
- [PATCH net 5/9] net/tls: Consume empty data records in tls... Chuck Lever
- Re: [PATCH net 5/9] net/tls: Consume empty data recor... Sabrina Dubroca
- Re: [PATCH net 5/9] net/tls: Consume empty data recor... Jakub Kicinski
- Re: [PATCH net 5/9] net/tls: Consume empty data r... Chuck Lever
- [PATCH net 6/9] selftests: tls: add peek and splice covera... Chuck Lever
- Re: [PATCH net 6/9] selftests: tls: add peek and spli... Sabrina Dubroca
- [PATCH net 9/9] selftests: tls: cover splice after a faile... Chuck Lever
- Re: [PATCH net 9/9] selftests: tls: cover splice afte... Sabrina Dubroca
- Re: [PATCH net 0/9] net/tls: Receive-path fixes for zero-l... Jakub Kicinski
