From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sagi Grimberg Subject: [PATCH v4 02/13] datagram: open-code copy_page_to_iter Date: Tue, 27 Nov 2018 15:16:04 -0800 Message-ID: <20181127231615.9446-3-sagi@grimberg.me> References: <20181127231615.9446-1-sagi@grimberg.me> Cc: linux-block@vger.kernel.org, netdev@vger.kernel.org, Christoph Hellwig , Keith Busch , "David S. Miller" To: linux-nvme@lists.infradead.org Return-path: Received: from bombadil.infradead.org ([198.137.202.133]:37802 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726068AbeK1KPy (ORCPT ); Wed, 28 Nov 2018 05:15:54 -0500 In-Reply-To: <20181127231615.9446-1-sagi@grimberg.me> Sender: netdev-owner@vger.kernel.org List-ID: From: Sagi Grimberg This will be useful to consolidate skb_copy_and_hash_datagram_iter and skb_copy_and_csum_datagram to a single code path. Signed-off-by: Sagi Grimberg --- net/core/datagram.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/net/core/datagram.c b/net/core/datagram.c index 57f3a6fcfc1e..abe642181b64 100644 --- a/net/core/datagram.c +++ b/net/core/datagram.c @@ -445,11 +445,14 @@ int skb_copy_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(page); + if (copy > len) copy = len; - n = copy_page_to_iter(skb_frag_page(frag), - frag->page_offset + offset - - start, copy, to); + n = copy_to_iter(vaddr + frag->page_offset + + offset - start, copy, to); + kunmap(page); offset += n; if (n != copy) goto short_copy; -- 2.17.1