From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2DF6C47422 for ; Thu, 25 Jan 2024 16:10:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3CD9D6B0095; Thu, 25 Jan 2024 11:10:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 37DF16B0098; Thu, 25 Jan 2024 11:10:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 246186B0099; Thu, 25 Jan 2024 11:10:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 153146B0095 for ; Thu, 25 Jan 2024 11:10:05 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id CD75F1C02C5 for ; Thu, 25 Jan 2024 16:10:04 +0000 (UTC) X-FDA: 81718319928.30.E13C636 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf11.hostedemail.com (Postfix) with ESMTP id 3928340007 for ; Thu, 25 Jan 2024 16:09:59 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=rmGd0N8Z; dmarc=none; spf=none (imf11.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706199002; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=RQikkIm2QnxXvz3fgLK+M6KVic4QhqcU+a/nOw4Ko44=; b=1JNisO1Z52aWTNI//uQmjek8RQjTa250lW0po/XeVAKwseh7NQYkWY/WE9DZw78TkU9TXg riKmXyqaHwAIXk7Hx5thX29W9BSrRfITx2NhEOJDyjNPpFC9upny9J+ryA4L/Sg/Hw7XzI spZDGH4TwGaGbE/BVIj1tbG4jA6h9Rw= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=rmGd0N8Z; dmarc=none; spf=none (imf11.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706199002; a=rsa-sha256; cv=none; b=cNk5zEAHaf08Z8JBoqnvQybbGB2rmJ2karDv6OuS8oyhUAZkVp8MtyGI5exhrpk6nD/J38 jYJftddHFMb5GMry0d16RHnHU9zGQgW0xPjQ2iq5Fb4nl7lV+AI9oKnOObLtY4hC+EPDdY /uKHKGDwXnIKGN7RCurJnDArB9Qxzwk= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=RQikkIm2QnxXvz3fgLK+M6KVic4QhqcU+a/nOw4Ko44=; b=rmGd0N8ZuxoU0orIOY0DvsvKHI vEsQrX6qIGcUW+dArNov8C5l6ql5HZTIZHoCUBU3VYWzbBx2g9hycWUHkvr0EiXuq23CuxyNR6Sfb VDSpYTpYD7v9M6Fx10VBrhW8SgTAEWAEHoaCDKtXTr0sx8vjQNccYWWM+fp5ZaJAvVAZYFp/2G0OA ZhmQp3LjcE6SIByY3fgzmF3+pFjetD7a7llX9AR6+pEPR82b1D/7zBPzkf8AApqLtFsgUyXJnv815 9CkMg2hSlTGWi6lF06BLi05ctqj2eZx+Rwv4KkAPG6xCDTcppa/S4S2rGGAQzpc12rtBHy7KQq4U2 QpskTG2w==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rT2Id-0000000ARmp-1ycD; Thu, 25 Jan 2024 16:09:55 +0000 Date: Thu, 25 Jan 2024 16:09:55 +0000 From: Matthew Wilcox To: Eric Dumazet Cc: "David S . Miller" , Jakub Kicinski , Paolo Abeni , Neal Cardwell , netdev@vger.kernel.org, eric.dumazet@gmail.com, ZhangPeng , Arjun Roy , linux-mm@kvack.org, Andrew Morton , linux-fsdevel@vger.kernel.org Subject: Re: [PATCH net] tcp: add sanity checks to rx zerocopy Message-ID: References: <20240125103317.2334989-1-edumazet@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 3928340007 X-Stat-Signature: pq1fozq5ccb97wddttqaxc5qiz49c8c5 X-Rspam-User: X-HE-Tag: 1706198999-208664 X-HE-Meta: U2FsdGVkX1+/0e/3ULLyFSqKgG2999+gJeRzmznBYFIXxmqrhf9jEgDHG0CkGO1D/A75holqq7HDQvR1Py8mCvQ0S0/DMmOJvCVoGvplCCdmRQ/WweSU311CoAjGVJSin6MD+EqAbLseRz+3IMtbA9G8Rp03XNdr/RjD2vwbGmSTEU8kAzfhsaqh7mqafm+2Hzp2zAbB4R7V9EvpQVdLiMyuyChTLXrAze0BgLdxV+oqX5gjGZbqMgsiMv/sqQta+sPFyTWQsecQofxi3cHslpReOnGcNXz2LsZoJM9iOTZend0fQ5xcRB/rvcw/uhJxD/COeyladjhnYhz4G0ImydoozzVX0xb8lc4K18/5XhylNm5QG3XYMRHlxugmIbnNO5gP16WoAIuuMvJucgW6jAdEHOUriOHdOYiEoT50rgsH0H4AEAXFlBI7wgXh/1o0cbkvgpiLWfEAwytKtXkUM8s85vr/V+MtKOdk+D3Z5c8ZcCtxqtcTHwhriFYkfPnqw5mO/fEevdujhy/gZNXez8ZzRkeDpm5/PhFUN3CPP/gBKZxPpDX6J9piXP1Bel8GjST9jV79wDmmMVpxU4ork8iswfvNXhMJEFj4QGeboHR65OiiycVe9w1lLq9z4GIxzYyldwxmVBxenBxYFRgWoYrHJK267+7nCSBimHgeNQwhD23gKFT8OekgoacP10RVBlP69Yd6nOOmC4IYC7kvgnq3goOlwwTKSQo6B0G48OUyFCmqLjG3xm7BrB/KeV/dbUyTjQ6hHylzQyKppQJSjJnUBEoySgLXC77JFbTShNKnY5R5GjIlfSz4Um6YJ9p6SbRq12R31HMocm+YJzb1fUueFfJv8vsYixrw4FtzAjlyuJiMAAmPQLDtnRMuXFziIU+m70IqVKJ1rcnB463sTfPcT+7rQRGwck/ei/FlwB+3ohtM5XasBWonTHE/lkDQYUg+uHWWKUOwNoX+VSB l8Lu8sw9 VjygiUnwZFPWWIam2ZDAfWq13GxjUCLmLjFzgOpD6stdq+4Dn1dbD026ZpK7PU93X93iXCWt+4rQNm40rCGkUDMW2qnRINUbZzr9Tt8VLmdTXtMhjTFIxIe71ul5yDvZJTRqwiDzzpi7qx19XlD28Ty7RdwNmmTs641KzZnF5Bh5JorBdb3auC732LITxcc0gKp2nsE5klw+Jr2/ka8r0dd1GGw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Fixing email address for linux-mm. On Thu, Jan 25, 2024 at 04:07:50PM +0000, Matthew Wilcox wrote: > On Thu, Jan 25, 2024 at 10:33:17AM +0000, Eric Dumazet wrote: > > +++ b/net/ipv4/tcp.c > > @@ -1786,7 +1786,17 @@ static skb_frag_t *skb_advance_to_frag(struct sk_buff *skb, u32 offset_skb, > > > > static bool can_map_frag(const skb_frag_t *frag) > > { > > - return skb_frag_size(frag) == PAGE_SIZE && !skb_frag_off(frag); > > + struct page *page; > > + > > + if (skb_frag_size(frag) != PAGE_SIZE || skb_frag_off(frag)) > > + return false; > > + > > + page = skb_frag_page(frag); > > + > > + if (PageCompound(page) || page->mapping) > > + return false; > > I'm not entirely sure why you're testing PageCompound here. If a driver > allocates a compound page, we'd still want to be able to insert it, > right? > > I have a feeling that we want to fix this in the VM layer. There are > some weird places calling vm_insert_page() and we should probably make > them all fail. > > Something like this, perhaps? > > diff --git a/mm/memory.c b/mm/memory.c > index 1a60faad2e49..ae0abab56d38 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -1871,6 +1871,10 @@ static int insert_page_into_pte_locked(struct vm_area_struct *vma, pte_t *pte, > > if (!pte_none(ptep_get(pte))) > return -EBUSY; > + if (folio->mapping && > + ((addr - vma->vm_start) / PAGE_SIZE + vma->vm_pgoff) != > + (folio->index + folio_page_idx(folio, page))) > + return -EINVAL; > /* Ok, finally just insert the thing.. */ > folio_get(folio); > inc_mm_counter(vma->vm_mm, mm_counter_file(folio)); >