From patchwork Mon Feb 17 19:08:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matthew Wilcox (Oracle)" X-Patchwork-Id: 13978490 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 60017C021A9 for ; Mon, 17 Feb 2025 19:08:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B140D280084; Mon, 17 Feb 2025 14:08:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AA9D5280086; Mon, 17 Feb 2025 14:08:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 96556280084; Mon, 17 Feb 2025 14:08:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 78099280080 for ; Mon, 17 Feb 2025 14:08:42 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 296D14BEB3 for ; Mon, 17 Feb 2025 19:08:42 +0000 (UTC) X-FDA: 83130373284.01.4B975F6 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf19.hostedemail.com (Postfix) with ESMTP id 7AFF01A000B for ; Mon, 17 Feb 2025 19:08:40 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=StCMnrt6; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739819320; a=rsa-sha256; cv=none; b=ynyE1Ptvs+QMScWYHUfIXBb5ZyOnEJHYbZJYjDvS13e4cpBUtUGrFqoNLapGztfASUTuMK 0vafGRHz7PDSR1Mta8soSeiVdSsGtsFdfeCyc3rqE86uJ+mns0OcZqELLSJmjjwGKVbiQr NEY6S39DcHvM1hsDeHif+HeKTCp9zZw= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=StCMnrt6; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739819320; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=OumVES33M5Q6KKLjsks+HzN6mA4d4PgrDi4hyJXhstQ=; b=pgZaydKT31ubDOeIjCUQlQELaCFEXTcOMFfQNhEIAog7s6qtaUPIUEpk4E+dz2GSalgnKT edFkxYx0JBn8cUHEpyGeMjERE4ejjEXOjCrPuBoRJUAnnhW6MtzSp8XRUyiPik7dvrcdnS 8qOro8TQlveMs/Flw6QT1CCNxwexXnE= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=OumVES33M5Q6KKLjsks+HzN6mA4d4PgrDi4hyJXhstQ=; b=StCMnrt6vOSAYjFMqqQquk050o hn1znvvg9gYx0AwLbFVElug1d1bW6SEWC5H6dYMk8J4C7mg0KKFEgL/HFVJvoA99AQ/0JSkSUErr2 TtcqV5Ev5F8iW4alNv2SNQPl6S01DglwDe5jooRarQpgbJ/l/ZVAqSfnmiymy+RfLGQx4SSUgETnn TzhasKCnq5rTeSL7GLZAICQkeu663hIrRckIbtwLo9icbmZqKxQSO+kiWs4EGAl7Z15/lwEfa3F4Y L5EvDNIT5UdATOp5oZB+3Y/6WYY/Q5HETXGUent6CVnm3bZ/1K5o8X6f6yqK63/mHxlPMryWUmXdG kBG41KUw==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tk6Tv-00000001pBk-19SY; Mon, 17 Feb 2025 19:08:39 +0000 From: "Matthew Wilcox (Oracle)" To: linux-mm@kvack.org Cc: "Matthew Wilcox (Oracle)" , linux-arch@vger.kernel.org, x86@kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org Subject: [PATCH 7/7] mm: Add folio_mk_pte() Date: Mon, 17 Feb 2025 19:08:34 +0000 Message-ID: <20250217190836.435039-8-willy@infradead.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250217190836.435039-1-willy@infradead.org> References: <20250217190836.435039-1-willy@infradead.org> MIME-Version: 1.0 X-Stat-Signature: yahbjzbsft5c7ph7q9r6mncnctgy3m75 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 7AFF01A000B X-Rspam-User: X-HE-Tag: 1739819320-401501 X-HE-Meta: U2FsdGVkX1+BMPkuxGSmyrXB4TuJUmLWy1URkrn0BMqc3FBDcY7TdGrStADo71CnEX0VXKTuRhAA+LwAyCxjstfNzzWG8Gn+Kf1ZTv1IGSJkhKhIXTW8eUjc0ocmfac5JP1g1k6D5flmzjfLgRhi1lAeH1zVzmsxvu1X5XN7PysQLKeuNvL61O/vJCyaSF98iPLwA9NAq+IDGDxiZ/YFl8FCK5+cPx/ngj5B2YBw439o8TFa5b25PVF3gMo0qk+a2of5Ktl0ulRqhjooOtfIEB+eDZGKctgr2FMuZvb7yLFS1BYp/l4I2SagqVc6DSwBk6gEoof7MN8ouns5NTlp8Xj0e3jXW9S0A//HxlTFqG8f42ZveRbbxWFf04XoDZRVPgspzthrQNiQINcK90TtHmhzAm5CMMMQSkLQyPGVxb4UKwwjTOjf+yZrabICpCSBrx/gwM4Sm82ZTjctybOz9MvTKgjH588GIRryy8oiDARIi28uT5WwCy2+IinrOkxJRWjvnBMZ+ibIniLmnr/4hTMtSxTWgw7OrXHEeqTLbEecTbcyabF2fzx+wGwR6Bz9INj66ch+dGOS2nbqZfK0UoSYXC7j+DkYVoUEVR4PAjH0R5QShMhbl8p5qHt/hbdfKlHsYWUNuDNvyifLDjjrLOcdCnIAjpTlS05ZF6CJdKSWQKdUqRtvArIF+MQZe/b/qJSfXSOsEMF9TWrGESUTIYw7/lBPIT34R0i7AdO341wqHMUk+wFMTdbvZ1NNFF4N9lHEJKYiYFqkOUf4VyQIXxymWCRJQg4kRARij4sUtvKQQnqdVGNiqfsjJ5HDiUktJovW2O6yuXdwe6UixEPe57cCt4w+LL4XXissBQLNeu+gzRBbv4k/hkjfSV3nALK5KqoQNrjaE+aNTWZNW3+fyaSR0ipsNliwyzvkUv5AptMx1ptkzA0F5oNGZIBMLiMY7Ln/fpg5Wa/3nGsU1CO gee/ZAy9 NVdLCbBZeLYTtBgcKWO77d9uT6W7W5tjMI+hrdN9ywVGxfmzDguSH58UQLpn5JHXC8Zboewt0MKyXvfOg1s3ZL6vZrROtNa89sKVZ9Xyfe+dahsEqB6OCcNU4ovCHWAI5ZaJ7DJE7JKHhoK4k2L8QfIUC7qjPqgsNYOXq/XMuWVMw83nYm5fFHM7g2ShJnkiEddzHaucuHAuEOd8f/b2o60QiTQRfLVQ0W2+6Y0ECCEFz5c5qFiFiWyZg+rZd6wup4Q4vi3FGiHbZmRO/sCjI5B2EkUC8Q0QG2q2c 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: Removes a cast from folio to page in four callers of mk_pte(). Signed-off-by: Matthew Wilcox (Oracle) Acked-by: David Hildenbrand --- include/linux/mm.h | 15 +++++++++++++++ mm/memory.c | 6 +++--- mm/userfaultfd.c | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 62dccde9c561..b1e311bae6b7 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1921,6 +1921,21 @@ static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) { return pfn_pte(page_to_pfn(page), pgprot); } + +/** + * folio_mk_pte - Create a PTE for this folio + * @folio: The folio to create a PTE for + * @pgprot: The page protection bits to use + * + * Create a page table entry for the first page of this folio. + * This is suitable for passing to set_ptes(). + * + * Return: A page table entry suitable for mapping this folio. + */ +static inline pte_t folio_mk_pte(struct folio *folio, pgprot_t pgprot) +{ + return pfn_pte(folio_pfn(folio), pgprot); +} #endif /** diff --git a/mm/memory.c b/mm/memory.c index 4330560eee55..72411a6d696f 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -936,7 +936,7 @@ copy_present_page(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma rss[MM_ANONPAGES]++; /* All done, just insert the new page copy in the child */ - pte = mk_pte(&new_folio->page, dst_vma->vm_page_prot); + pte = folio_mk_pte(new_folio, dst_vma->vm_page_prot); pte = maybe_mkwrite(pte_mkdirty(pte), dst_vma); if (userfaultfd_pte_wp(dst_vma, ptep_get(src_pte))) /* Uffd-wp needs to be delivered to dest pte as well */ @@ -3480,7 +3480,7 @@ static vm_fault_t wp_page_copy(struct vm_fault *vmf) inc_mm_counter(mm, MM_ANONPAGES); } flush_cache_page(vma, vmf->address, pte_pfn(vmf->orig_pte)); - entry = mk_pte(&new_folio->page, vma->vm_page_prot); + entry = folio_mk_pte(new_folio, vma->vm_page_prot); entry = pte_sw_mkyoung(entry); if (unlikely(unshare)) { if (pte_soft_dirty(vmf->orig_pte)) @@ -4892,7 +4892,7 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) */ __folio_mark_uptodate(folio); - entry = mk_pte(&folio->page, vma->vm_page_prot); + entry = folio_mk_pte(folio, vma->vm_page_prot); entry = pte_sw_mkyoung(entry); if (vma->vm_flags & VM_WRITE) entry = pte_mkwrite(pte_mkdirty(entry), vma); diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c index af3dfc3633db..507a9e3caec7 100644 --- a/mm/userfaultfd.c +++ b/mm/userfaultfd.c @@ -1066,7 +1066,7 @@ static int move_present_pte(struct mm_struct *mm, folio_move_anon_rmap(src_folio, dst_vma); src_folio->index = linear_page_index(dst_vma, dst_addr); - orig_dst_pte = mk_pte(&src_folio->page, dst_vma->vm_page_prot); + orig_dst_pte = folio_mk_pte(src_folio, dst_vma->vm_page_prot); /* Follow mremap() behavior and treat the entry dirty after the move */ orig_dst_pte = pte_mkwrite(pte_mkdirty(orig_dst_pte), dst_vma);