On Thu, 15 Feb 2024 17:17:31 +0100 Sabrina Dubroca wrote: > @@ -1772,7 +1772,8 @@ static int process_rx_list(struct tls_sw_context_rx *ctx, > u8 *control, > size_t skip, > size_t len, > - bool is_peek) > + bool is_peek, > + bool *more) > { > struct sk_buff *skb = skb_peek(&ctx->rx_list); > struct tls_msg *tlm; > @@ -1844,6 +1845,10 @@ static int process_rx_list(struct tls_sw_context_rx *ctx, > > out: > return copied ? : err; > +more: > + if (more) > + *more = true; > + goto out; Patches look correct, one small nit here - I don't have great ideas how to avoid the 7th argument completely but I think it'd be a little cleaner if we either: - passed in err as an output argument (some datagram code does that IIRC), then function can always return copied directly, or - passed copied as an output argument, and then we can always return err? I like the former a little better because we won't have to special case NULL for the "after async decryption" call sites.