mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 02:33:57 +00:00
net: unify alloclen calculation for paged requests
Consolidate alloclen and pagedlen calculation for zerocopy and normal paged requests. The current non-zerocopy paged version can a bit overallocate and unnecessary copy a small chunk of data into the linear part. Cc: Willem de Bruijn <willemb@google.com> Link: https://lore.kernel.org/netdev/CA+FuTSf0+cJ9_N_xrHmCGX_KoVCWcE0YQBdtgEkzGvcLMSv7Qw@mail.gmail.com/ Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/b0e4edb7b91f171c7119891d3c61040b8c56596e.1661428921.git.asml.silence@gmail.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
d287532edf
commit
47cf88993c
@ -1109,10 +1109,7 @@ static int __ip_append_data(struct sock *sk,
|
||||
(fraglen + alloc_extra < SKB_MAX_ALLOC ||
|
||||
!(rt->dst.dev->features & NETIF_F_SG)))
|
||||
alloclen = fraglen;
|
||||
else if (!zc) {
|
||||
alloclen = min_t(int, fraglen, MAX_HEADER);
|
||||
pagedlen = fraglen - alloclen;
|
||||
} else {
|
||||
else {
|
||||
alloclen = fragheaderlen + transhdrlen;
|
||||
pagedlen = datalen - transhdrlen;
|
||||
}
|
||||
|
@ -1648,10 +1648,7 @@ static int __ip6_append_data(struct sock *sk,
|
||||
(fraglen + alloc_extra < SKB_MAX_ALLOC ||
|
||||
!(rt->dst.dev->features & NETIF_F_SG)))
|
||||
alloclen = fraglen;
|
||||
else if (!zc) {
|
||||
alloclen = min_t(int, fraglen, MAX_HEADER);
|
||||
pagedlen = fraglen - alloclen;
|
||||
} else {
|
||||
else {
|
||||
alloclen = fragheaderlen + transhdrlen;
|
||||
pagedlen = datalen - transhdrlen;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user