All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: John Fastabend <john.fastabend@gmail.com>
Cc: netdev@vger.kernel.org, eadavis@qq.com, bpf@vger.kernel.org,
	borisp@nvidia.com
Subject: Re: [PATCH net 1/2] net: tls, fix WARNIING in __sk_msg_free
Date: Thu, 11 Jan 2024 17:05:13 -0800	[thread overview]
Message-ID: <20240111170513.7f8cd768@kernel.org> (raw)
In-Reply-To: <20240110220124.452746-2-john.fastabend@gmail.com>

On Wed, 10 Jan 2024 14:01:23 -0800 John Fastabend wrote:
> A splice with MSG_SPLICE_PAGES will cause tls code to use the
> tls_sw_sendmsg_splice path in the TLS sendmsg code to move the user
> provided pages from the msg into the msg_pl. This will loop over the
> msg until msg_pl is full, checked by sk_msg_full(msg_pl). The user
> can also set the MORE flag to hint stack to delay sending until receiving
> more pages and ideally a full buffer.
> 
> If the user adds more pages to the msg than can fit in the msg_pl
> scatterlist (MAX_MSG_FRAGS) we should ignore the MORE flag and send
> the buffer anyways.
> 
> What actually happens though is we abort the msg to msg_pl scatterlist
> setup and then because we forget to set 'full record' indicating we
> can no longer consume data without a send we fallthrough to the 'continue'
> path which will check if msg_data_left(msg) has more bytes to send and
> then attempts to fit them in the already full msg_pl. Then next
> iteration of sender doing send will encounter a full msg_pl and throw
> the warning in the syzbot report.
> 
> To fix simply check if we have a full_record in splice code path and
> if not send the msg regardless of MORE flag.

Reviewed-by: Jakub Kicinski <kuba@kernel.org>

  reply	other threads:[~2024-01-12  1:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-10 22:01 [PATCH net 0/2] tls fixes for SPLICE with more hint John Fastabend
2024-01-10 22:01 ` [PATCH net 1/2] net: tls, fix WARNIING in __sk_msg_free John Fastabend
2024-01-12  1:05   ` Jakub Kicinski [this message]
2024-01-10 22:01 ` [PATCH net 2/2] net: tls, add test to capture error on large splice John Fastabend
2024-01-12  1:05   ` Jakub Kicinski
2024-01-12 21:52     ` John Fastabend

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240111170513.7f8cd768@kernel.org \
    --to=kuba@kernel.org \
    --cc=borisp@nvidia.com \
    --cc=bpf@vger.kernel.org \
    --cc=eadavis@qq.com \
    --cc=john.fastabend@gmail.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.