From: Sagi Grimberg Date: Wed, 26 Jun 2024 07:01:53 +0000 (+0300) Subject: Revert "net: micro-optimize skb_datagram_iter" X-Git-Tag: v6.11-rc1~163^2~126 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2d5f6801db8ec0ce97bc520ecd51a7be06a35042;p=thirdparty%2Flinux.git Revert "net: micro-optimize skb_datagram_iter" This reverts commit 934c29999b57b835d65442da6f741d5e27f3b584. This triggered a usercopy BUG() in systems with HIGHMEM, reported by the test robot in: https://lore.kernel.org/oe-lkp/202406161539.b5ff7b20-oliver.sang@intel.com Signed-off-by: Sagi Grimberg Link: https://patch.msgid.link/20240626070153.759257-1-sagi@grimberg.me Signed-off-by: Jakub Kicinski --- diff --git a/net/core/datagram.c b/net/core/datagram.c index 95f242591fd23..e614cfd8e14a5 100644 --- a/net/core/datagram.c +++ b/net/core/datagram.c @@ -417,14 +417,14 @@ static int __skb_datagram_iter(const struct sk_buff *skb, int offset, end = start + skb_frag_size(frag); if ((copy = end - offset) > 0) { struct page *page = skb_frag_page(frag); - u8 *vaddr = kmap_local_page(page); + u8 *vaddr = kmap(page); if (copy > len) copy = len; n = INDIRECT_CALL_1(cb, simple_copy_to_iter, vaddr + skb_frag_off(frag) + offset - start, copy, data, to); - kunmap_local(vaddr); + kunmap(page); offset += n; if (n != copy) goto short_copy;