On Fri, Apr 25, 2025 at 01:59:57PM +0800, Jiayuan Chen wrote:
>  net/tls/tls_sw.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
> index f3d7d19482da..fc88e34b7f33 100644
> --- a/net/tls/tls_sw.c
> +++ b/net/tls/tls_sw.c
> @@ -908,6 +908,13 @@ static int bpf_exec_tx_verdict(struct sk_msg *msg, 
> struct sock *sk,
>                                           &msg_redir, send, flags);
>               lock_sock(sk);
>               if (err < 0) {
> +                     /* Regardless of whether the data represented by
> +                      * msg_redir is sent successfully, we have already
> +                      * uncharged it via sk_msg_return_zero(). The
> +                      * msg->sg.size represents the remaining unprocessed
> +                      * data, which needs to be uncharged here.
> +                      */
> +                     sk_mem_uncharge(sk, msg->sg.size);
>                       *copied -= sk_msg_free_nocharge(sk, &msg_redir);

Equivalent to sk_msg_free() ?

Thanks.

Reply via email to