Message ID | 3f4a39b3966204f062200caad857ff822f9f2895.1719190216.git.asml.silence@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | zerocopy tx cleanups | expand |
Pavel Begunkov wrote: > skb_zerocopy_iter_stream() only uses @orig_uarg in the !link_skb path, > and we can move the local variable in the appropriate block. > > Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Reviewed-by: Willem de Bruijn <willemb@google.com>
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 9f28822dde6f..9b71e4b8796a 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -1856,7 +1856,6 @@ int skb_zerocopy_iter_stream(struct sock *sk, struct sk_buff *skb, struct msghdr *msg, int len, struct ubuf_info *uarg) { - struct ubuf_info *orig_uarg = skb_zcopy(skb); int err, orig_len = skb->len; if (uarg->ops->link_skb) { @@ -1864,6 +1863,8 @@ int skb_zerocopy_iter_stream(struct sock *sk, struct sk_buff *skb, if (err) return err; } else { + struct ubuf_info *orig_uarg = skb_zcopy(skb); + /* An skb can only point to one uarg. This edge case happens * when TCP appends to an skb, but zerocopy_realloc triggered * a new alloc.
skb_zerocopy_iter_stream() only uses @orig_uarg in the !link_skb path, and we can move the local variable in the appropriate block. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> --- net/core/skbuff.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)