Message ID | 66e53f14-bfca-6b1a-d9db-9b1c0786d07a@google.com (mailing list archive) |
---|---|
State | Accepted |
Commit | f153831097b4435f963e385304cc0f1acba1c657 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [v3] net: fix rc7's __skb_datagram_iter() | expand |
On Wed, 2024-07-10 at 08:36 -0700, Hugh Dickins wrote: > X would not start in my old 32-bit partition (and the "n"-handling looks > just as wrong on 64-bit, but for whatever reason did not show up there): > "n" must be accumulated over all pages before it's added to "offset" and > compared with "copy", immediately after the skb_frag_foreach_page() loop. > > Fixes: d2d30a376d9c ("net: allow skb_datagram_iter to be called from any context") > Signed-off-by: Hugh Dickins <hughd@google.com> > Reviewed-by: Sagi Grimberg <sagi@grimberg.me> > --- > v3: added reviewed-by Sagi, try sending direct to Linus V2 is already applied to the 'net' tree and will be included in our next 'net' PR, coming tomorrow. It looks like the netdev bot decided it needed an holiday (or was fooled by the threaded submission for v2), so no notification landed on the ML. @Hugh: next time please check the current tree status or patchwork before submitting a new revision. And please avoid submitting the new version in reply to a previous one, it makes things difficult for our CI. Thanks, Paolo
On Wed, 10 Jul 2024, Paolo Abeni wrote: > On Wed, 2024-07-10 at 08:36 -0700, Hugh Dickins wrote: > > X would not start in my old 32-bit partition (and the "n"-handling looks > > just as wrong on 64-bit, but for whatever reason did not show up there): > > "n" must be accumulated over all pages before it's added to "offset" and > > compared with "copy", immediately after the skb_frag_foreach_page() loop. > > > > Fixes: d2d30a376d9c ("net: allow skb_datagram_iter to be called from any context") > > Signed-off-by: Hugh Dickins <hughd@google.com> > > Reviewed-by: Sagi Grimberg <sagi@grimberg.me> > > --- > > v3: added reviewed-by Sagi, try sending direct to Linus > > V2 is already applied to the 'net' tree and will be included in our > next 'net' PR, coming tomorrow. > > It looks like the netdev bot decided it needed an holiday (or was > fooled by the threaded submission for v2), so no notification landed on > the ML. > > @Hugh: next time please check the current tree status or patchwork > before submitting a new revision. And please avoid submitting the new > version in reply to a previous one, it makes things difficult for our > CI. Ah, great, thanks. Yes, I'd heard only silence (and was worried because, although I only saw the effect of this on 32-bit, suspect it could cause lots of obscure trouble more generally). Hugh
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Wed, 10 Jul 2024 08:36:54 -0700 (PDT) you wrote: > X would not start in my old 32-bit partition (and the "n"-handling looks > just as wrong on 64-bit, but for whatever reason did not show up there): > "n" must be accumulated over all pages before it's added to "offset" and > compared with "copy", immediately after the skb_frag_foreach_page() loop. > > Fixes: d2d30a376d9c ("net: allow skb_datagram_iter to be called from any context") > Signed-off-by: Hugh Dickins <hughd@google.com> > Reviewed-by: Sagi Grimberg <sagi@grimberg.me> > > [...] Here is the summary with links: - [v3] net: fix rc7's __skb_datagram_iter() https://git.kernel.org/netdev/net-next/c/f153831097b4 You are awesome, thank you!
diff --git a/net/core/datagram.c b/net/core/datagram.c index e9ba4c7b449d..e72dd78471a6 100644 --- a/net/core/datagram.c +++ b/net/core/datagram.c @@ -423,11 +423,12 @@ static int __skb_datagram_iter(const struct sk_buff *skb, int offset, if (copy > len) copy = len; + n = 0; skb_frag_foreach_page(frag, skb_frag_off(frag) + offset - start, copy, p, p_off, p_len, copied) { vaddr = kmap_local_page(p); - n = INDIRECT_CALL_1(cb, simple_copy_to_iter, + n += INDIRECT_CALL_1(cb, simple_copy_to_iter, vaddr + p_off, p_len, data, to); kunmap_local(vaddr); }