From patchwork Mon Feb 17 19:08:28 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: 13978497 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 9CDCFC021A9 for ; Mon, 17 Feb 2025 19:08:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B169428008B; Mon, 17 Feb 2025 14:08:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A5177280085; Mon, 17 Feb 2025 14:08:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7905428008B; Mon, 17 Feb 2025 14:08:51 -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 57E50280085 for ; Mon, 17 Feb 2025 14:08:51 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D2FA31C826B for ; Mon, 17 Feb 2025 19:08:50 +0000 (UTC) X-FDA: 83130373620.23.B911D09 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf12.hostedemail.com (Postfix) with ESMTP id 171E740012 for ; Mon, 17 Feb 2025 19:08:48 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=VviXey2+; spf=none (imf12.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=1739819329; 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=DQ8pEjsubtBd0+r7ArW3+Pwnui7gFm3cbKmo8d222fI=; b=YFGEsqLJWoIFYXVMQ8Mfm9NwdTOCnnexlqwdQHqj6QLWSSxxE+kBRE/2CW+WBNStWtdIEg cP16AhSrtcfRYAW/j2OfiDjIH/cdqPOO8UbTp5oEwSaJdMPXwLSZWg2FxE3ZpL5ZdMtx5e 0Ac0bq4b12sWvFzMZtKHaorVd1IEv1A= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739819329; a=rsa-sha256; cv=none; b=ypLVm/XFRyfXdk/rgfTWZ47KPr8t8kOMoQEgCkRnTNbspckW4oEeCgtj0gBWZID/VBASSR mGbiY8royT6e+DEtsQVbKAWCJ0Iq7KeB9+rPs/x3C88OXuBdV8OfBGZ9ybj9y66XZhuBGj aJtOTuIxblx3+/gK485yy4FL9dJNeu0= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=VviXey2+; spf=none (imf12.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none 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=DQ8pEjsubtBd0+r7ArW3+Pwnui7gFm3cbKmo8d222fI=; b=VviXey2+gk7RQlHla7fyP62RbI TWt5oMDGkBP4sH/ZbqUgWk8bfKkMHOigOck3TrdZiCNDAVRbOYFTGqv5DDvX6UgttQFSlvwPw9TsP NLCPz9fidRWT/lWflrucyZKu1lXBP23nJGb0UafoScOJ+2xcIjlAcbGJMsM2zrZXqcmVXIjmeSe70 VL1w0cEd8G7h/4R9o4P/G74QbYHA+UQJmatysUlnLAXoPic8p1UTx+k06XYAUa5hXp5ikTZ/C8t5t ckJWGnG7IdVoN3DVdUN95CMcdnIYHnW+v4WLn46jowGmawC3q3v17uKqvUt3MTrWYlS4Vm4MxDull HBNOJXwg==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tk6Tu-00000001pBD-2cvi; Mon, 17 Feb 2025 19:08:38 +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 1/7] mm: Set the pte dirty if the folio is already dirty Date: Mon, 17 Feb 2025 19:08:28 +0000 Message-ID: <20250217190836.435039-2-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-Rspam-User: X-Rspamd-Queue-Id: 171E740012 X-Rspamd-Server: rspam07 X-Stat-Signature: zdqmgqbky3mwpmxd8fp84qa1g8xsgfem X-HE-Tag: 1739819328-561523 X-HE-Meta: U2FsdGVkX18SPkSkGFOgifKGZ5FULFQ8csQTVb5imJDnmS+/Ukwiasl+O73rsLdHCeKrC9w9wfCm4n5wQkYM7SMbVqYAK4myqti0nPFt8Damo3+WUTckoG4XiMY6ALCYiz+bWkRQvmDZ7xJ+nQiMizuihenhHKOcolKG/x365m2OjFdByLqtCpBZt24O6yyDmG1WOsttaZIYNsfbigNIYEghMxAiY06dQg5CIUv8VePEl07St8cnyoglVJp3GMtdLlOmcBONZNM8zBXpOzmk4CB8WLPQi9YaMPS2wuz3bt5LQN9O5TGV7pJqbirTBE3ZGVdwew1Fm2pyE6b++Zj1e/LfRVKrPimYV4+CQBNuRicDXm4Dk1FHth8UJ+AjuuK0ARTv0uXH1BXgD4OJ6aLxlh+KMg6LJXSEXehUDEe9lJnsRS3TlL7rEhhf6UzoI68whR6cXzWxFCwHbkSeTxlValtKmjejNfaUOYzjYF3e3fZ843HEAxzXuTF4G9+zVSj7ufnNFPrw0Axv6ra6HmTdPd4b3orQTsOBGJ7mJyk+rZf7azfVgQb8IgPAR6+TWsw31dxvzNXFP/xYI2C7HmsGgsPgbOt21bvND81s2jSbwZqoQGapgUl3paoDjg2SAPrqd9r5s+HGa6AK/IouOlfJuTowjq1cAP3NX51ZYR/N1/NODqtqB1u/K+OA3RYoj0Q9CIZjD7yF/k5NEfbmzzINcul0nu3tfo7NmaLwPhnWEmKZ+99v83dKto0f7D/x7oRMct78sW0grqWxNCubEDs9bo3kk8RVDS3I6r81Nm05o1p/hL1YSQBelztEwRUZ0f7iw6XtR+mxcV0RkOKAipt8lOT2GrhI4uidj+kjSuYt3kP3bk5d0LwohuM9rj+NDsEbwLQesLwID8+kQbv1ofkwWzldYbxH+/yA2Eq3TI8bjSRW9+b38YaqeXeqqDGfmBA/kEPr15JLwVkedKhdlM4 jMQuxKE8 zdkWbvfHVy6NnT1uqKEEGI+3PBFaD0HjSZ9q/DIP7a7yIr+UJNj+FpHJei1NIvu9FykJs2SRA1k25pHECaj/34mkgI/rr2spi9djp83NvdzDzSlN/ChyIdf4YRKuCOyXTakLXsT0zDqcKL+llgSgSPi/OcdytW47Xe+3QPHxxc3l3wY5ITmdFFKwhFHR5XBwsabX3KkD1aVCowRE/uw06TVmLgSQXBubsKUSs6yiKb5RQ9lg= 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: If the first access to a folio is a read that is then followed by a write, we can save a page fault. s390 implemented this in their mk_pte() in commit abf09bed3cce ("s390/mm: implement software dirty bits"), but other architectures can also benefit from this. Signed-off-by: Matthew Wilcox (Oracle) Acked-by: David Hildenbrand Reviewed-by: Alexander Gordeev --- arch/s390/include/asm/pgtable.h | 7 +------ mm/memory.c | 2 ++ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 3ca5af4cfe43..3ee495b5171e 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -1451,12 +1451,7 @@ static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot) static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) { - unsigned long physpage = page_to_phys(page); - pte_t __pte = mk_pte_phys(physpage, pgprot); - - if (pte_write(__pte) && PageDirty(page)) - __pte = pte_mkdirty(__pte); - return __pte; + return mk_pte_phys(page_to_phys(page), pgprot); } #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) diff --git a/mm/memory.c b/mm/memory.c index 539c0f7c6d54..4330560eee55 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -5124,6 +5124,8 @@ void set_pte_range(struct vm_fault *vmf, struct folio *folio, if (write) entry = maybe_mkwrite(pte_mkdirty(entry), vma); + else if (pte_write(entry) && folio_test_dirty(folio)) + entry = pte_mkdirty(entry); if (unlikely(vmf_orig_pte_uffd_wp(vmf))) entry = pte_mkuffd_wp(entry); /* copy-on-write page */ From patchwork Mon Feb 17 19:08:29 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: 13978495 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 4E7ADC021A9 for ; Mon, 17 Feb 2025 19:08:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 65A2B280089; Mon, 17 Feb 2025 14:08:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5E489280085; Mon, 17 Feb 2025 14:08:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3BFA8280089; Mon, 17 Feb 2025 14:08:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 17951280085 for ; Mon, 17 Feb 2025 14:08:45 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id C406A12078C for ; Mon, 17 Feb 2025 19:08:44 +0000 (UTC) X-FDA: 83130373368.06.69B98C0 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf28.hostedemail.com (Postfix) with ESMTP id 0F807C0003 for ; Mon, 17 Feb 2025 19:08:42 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=nbrWGX9N; spf=none (imf28.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=1739819323; 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=YrjyUBt/jPWMpLQ4u9XWRkTeXfHbGxT9tJvSkCzHi+Y=; b=E4CQg6TY6IiVNarK3B+tS7trsPqZTcC2zUYa2oMWlHlKCMNtcpwvKaPyMNWuV9JFL4PRBr DsHqlFrslY54GiBLOwizpb8WoQ1ZbnXMRgDjhtIvi6zoZ2Owka8y5iXYIwsDTAWXXpeN26 FBdQePK1Y+XErdNl+k9Il9oI4+bKMIA= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=nbrWGX9N; spf=none (imf28.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=1739819323; a=rsa-sha256; cv=none; b=D00SwHkHR3yGpLcKloZtpN1Xcou6vW5PHnnHc7IX21Wteef7V2iUHWHboqh7l1vVce/rJk Vw5HT2YRMq3Rfk9+ZruKvqStqbxwGSLjq2TPIsYPE6H7KaA1SwcERQyCt4wQ6rjYzMUYKi eNLqfA31MHiazFAK5u7xRlX5w4JNxK4= 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=YrjyUBt/jPWMpLQ4u9XWRkTeXfHbGxT9tJvSkCzHi+Y=; b=nbrWGX9NUujeOLaQPWifJH3KhX M0n2DFCnUimuNgcnma8CSZfUn6TbHsYNLww8CWwKb78ZGQCCjy+Z9546yArOBRhEtZdujxmm6qwHf 6LCA+zUaRfoReWZG6XftJ+vs9y+Thz/d0xfT7663zfF159bo2etRsxPXPTHxf3Ntb5uwcMKc/NJdW QiW//7fUPE53dlmPdOH4Ujhc649BNPAYLFp1xZwoogMZbBrdraGw18CFarWCSo5ODRYe420itA9Ri iG7U4Ux4d4aIjrv6GNPkwQwcYps+bQlrumL+YpzxY1bj7rckFwZjCisf9+9t2n/WGANnDbWT/+5sd isRJb0Wg==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tk6Tu-00000001pBF-32Qn; Mon, 17 Feb 2025 19:08:38 +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 2/7] mm: Introduce a common definition of mk_pte() Date: Mon, 17 Feb 2025 19:08:29 +0000 Message-ID: <20250217190836.435039-3-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-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 0F807C0003 X-Stat-Signature: 9a4xj7kbx9bpc6ijx6tctrn5k3juhq6s X-HE-Tag: 1739819322-9962 X-HE-Meta: U2FsdGVkX18kxxqmhV1xedgFuuJ329jd8VLW/AJtDbc9JTk6RlgLvjn8sDa4eA4BAxomajV8JceHn8KddCwLy2P2vOtXs1jGLAFeQqpz0s04e1JTH1mB4P7pYP1VumWnUCSc56cPFMr4jCEaplFihtcCVCFdHHxt8wh540FFs8+VGsvlvFEKwlZBXs9n4d07zmh8mOs4MTv4SZrsc+cYIBOsg1czZy4PR50x06RCTAwBSVqrPvc1yFKDjkSgVypO0EGvR36YV8GpPmBThsj3yTVLfTuEF/qSMRQGmv1YnDIQmgAr2ARtfjzQNK1iSL5nQY6+Bvbmdv97CSO3A5srS+2LfxUzNgy50o0sucojqfAkpp+8FM2UifzaNMEp3ptMNVPTI+yYDVmt65qf0GVc6WEAKGdLcVXe8T/gb1eQ2oCWhdB/xA33Tnhku91skh5jBdaoxWSNRJWdrAOa2mJAeVH2sU5joyfXCSKmDncBAOmG9GpfaCyYLF7uW5MDwcPIP1Osb708T5PkSkuqZxv0RLkuScsJ3nHuPFARzOYsJWXUN1OlIvmFSOzjQ5OK6U08vQ4Pxl6YfQN5sTKk+ZjxqkLfMY32LVxXWvPMdlMIVMQLV6d9wr3cCvDdCgJVYxk9Ij36DUYIps+lLj8NTxoTSitz3bwWEclenx0ruSZKrS/yrafNrH8uun4zxvZTwrkpI5YOjM0sAazFvXBAOORDgH/TIYcpI4L3/eyioCgfSz4QQRdOge4Ax73yh+6HxGjtBnovO5rvad6LPpfUfbbzubrAG1g2wgiCNwMaEIYu6YUcMjcdBgU165WRKGTR9CUgGEkXbg2Xk/hgNsleoMTTQEQJhgYLdwoK+iP7GRRXyRhmoRDMgmbndVsn7Zk2LLFI+i+tlXf8pgPh6VhGX1eIof7nCd3s5YVrvQKj4lshbI6K56Q8aVbGDHYeqFetG3OTo1zBo+qVDwFEzotiXRB iOhiUVrt lkbNWYFdTiMiSMLxVfnpZzp4cuuuzCmJ7Mhff5dTQVLQ5dMtx9qzlI9I8dp5HWtlWBiPkezu0CjWDAUmmG0yLcv6L7W4LeNqS54UKu8xmFCAWYF0FOcQyOLqqtBwbYFipjszGrTJWiySjtQyHBojTcniMo2/JfyWCNWENMyhOHz2U/9+uts4GxCzAaGu5bFIzZS5U6FM8joCOyfMBX/iWBd1PkhFKtLXBOb9ECACnp70x0Q53wx1RyhyeFssUDLISbE1T+U1E4kRgktWaWnwEGJqe8O2qImq4BFAP 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: Most architectures simply call pfn_pte(). Centralise that as the normal definition and remove the definition of mk_pte() from the architectures which have either that exact definition or something similar. Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Geert Uytterhoeven # m68k Acked-by: David Hildenbrand Reviewed-by: Alexander Gordeev --- arch/alpha/include/asm/pgtable.h | 7 ------- arch/arc/include/asm/pgtable-levels.h | 1 - arch/arm/include/asm/pgtable.h | 1 - arch/arm64/include/asm/pgtable.h | 6 ------ arch/csky/include/asm/pgtable.h | 5 ----- arch/hexagon/include/asm/pgtable.h | 3 --- arch/loongarch/include/asm/pgtable.h | 6 ------ arch/m68k/include/asm/mcf_pgtable.h | 6 ------ arch/m68k/include/asm/motorola_pgtable.h | 6 ------ arch/m68k/include/asm/sun3_pgtable.h | 6 ------ arch/microblaze/include/asm/pgtable.h | 8 -------- arch/mips/include/asm/pgtable.h | 6 ------ arch/nios2/include/asm/pgtable.h | 6 ------ arch/openrisc/include/asm/pgtable.h | 2 -- arch/parisc/include/asm/pgtable.h | 6 ------ arch/powerpc/include/asm/pgtable.h | 3 +-- arch/riscv/include/asm/pgtable.h | 2 -- arch/s390/include/asm/pgtable.h | 5 ----- arch/sh/include/asm/pgtable_32.h | 8 -------- arch/sparc/include/asm/pgtable_64.h | 1 - arch/xtensa/include/asm/pgtable.h | 6 ------ include/linux/mm.h | 9 +++++++++ 22 files changed, 10 insertions(+), 99 deletions(-) diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h index 02e8817a8921..2676017f42f1 100644 --- a/arch/alpha/include/asm/pgtable.h +++ b/arch/alpha/include/asm/pgtable.h @@ -192,13 +192,6 @@ extern unsigned long __zero_page(void); #define pte_pfn(pte) (pte_val(pte) >> PFN_PTE_SHIFT) #define pte_page(pte) pfn_to_page(pte_pfn(pte)) -#define mk_pte(page, pgprot) \ -({ \ - pte_t pte; \ - \ - pte_val(pte) = (page_to_pfn(page) << 32) | pgprot_val(pgprot); \ - pte; \ -}) extern inline pte_t pfn_pte(unsigned long physpfn, pgprot_t pgprot) { pte_t pte; pte_val(pte) = (PHYS_TWIDDLE(physpfn) << 32) | pgprot_val(pgprot); return pte; } diff --git a/arch/arc/include/asm/pgtable-levels.h b/arch/arc/include/asm/pgtable-levels.h index 86e148226463..55dbd2719e35 100644 --- a/arch/arc/include/asm/pgtable-levels.h +++ b/arch/arc/include/asm/pgtable-levels.h @@ -177,7 +177,6 @@ #define set_pte(ptep, pte) ((*(ptep)) = (pte)) #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) #define pfn_pte(pfn, prot) __pte(__pfn_to_phys(pfn) | pgprot_val(prot)) -#define mk_pte(page, prot) pfn_pte(page_to_pfn(page), prot) #ifdef CONFIG_ISA_ARCV2 #define pmd_leaf(x) (pmd_val(x) & _PAGE_HW_SZ) diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index be91e376df79..74c3b5a6eab3 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h @@ -169,7 +169,6 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd) #define pfn_pte(pfn,prot) __pte(__pfn_to_phys(pfn) | pgprot_val(prot)) #define pte_page(pte) pfn_to_page(pte_pfn(pte)) -#define mk_pte(page,prot) pfn_pte(page_to_pfn(page), prot) #define pte_clear(mm,addr,ptep) set_pte_ext(ptep, __pte(0), 0) diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index 0b2a2ad1b9e8..64b469d799c6 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -793,12 +793,6 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) /* use ONLY for statically allocated translation tables */ #define pte_offset_kimg(dir,addr) ((pte_t *)__phys_to_kimg(pte_offset_phys((dir), (addr)))) -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ -#define mk_pte(page,prot) pfn_pte(page_to_pfn(page),prot) - #if CONFIG_PGTABLE_LEVELS > 2 #define pmd_ERROR(e) \ diff --git a/arch/csky/include/asm/pgtable.h b/arch/csky/include/asm/pgtable.h index a397e1718ab6..b8378431aeff 100644 --- a/arch/csky/include/asm/pgtable.h +++ b/arch/csky/include/asm/pgtable.h @@ -249,11 +249,6 @@ static inline pgprot_t pgprot_writecombine(pgprot_t _prot) return __pgprot(prot); } -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { return __pte((pte_val(pte) & _PAGE_CHG_MASK) | diff --git a/arch/hexagon/include/asm/pgtable.h b/arch/hexagon/include/asm/pgtable.h index 8c5b7a1c3d90..9fbdfdbc539f 100644 --- a/arch/hexagon/include/asm/pgtable.h +++ b/arch/hexagon/include/asm/pgtable.h @@ -238,9 +238,6 @@ static inline int pte_present(pte_t pte) return pte_val(pte) & _PAGE_PRESENT; } -/* mk_pte - make a PTE out of a page pointer and protection bits */ -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) - /* pte_page - returns a page (frame pointer/descriptor?) based on a PTE */ #define pte_page(x) pfn_to_page(pte_pfn(x)) diff --git a/arch/loongarch/include/asm/pgtable.h b/arch/loongarch/include/asm/pgtable.h index da346733a1da..9ba3a4ebcd98 100644 --- a/arch/loongarch/include/asm/pgtable.h +++ b/arch/loongarch/include/asm/pgtable.h @@ -426,12 +426,6 @@ static inline unsigned long pte_accessible(struct mm_struct *mm, pte_t a) return false; } -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) - static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { return __pte((pte_val(pte) & _PAGE_CHG_MASK) | diff --git a/arch/m68k/include/asm/mcf_pgtable.h b/arch/m68k/include/asm/mcf_pgtable.h index 48f87a8a8832..f5c596b211d4 100644 --- a/arch/m68k/include/asm/mcf_pgtable.h +++ b/arch/m68k/include/asm/mcf_pgtable.h @@ -96,12 +96,6 @@ #define pmd_pgtable(pmd) pfn_to_virt(pmd_val(pmd) >> PAGE_SHIFT) -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) - static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { pte_val(pte) = (pte_val(pte) & CF_PAGE_CHG_MASK) | pgprot_val(newprot); diff --git a/arch/m68k/include/asm/motorola_pgtable.h b/arch/m68k/include/asm/motorola_pgtable.h index 9866c7acdabe..040ac3bad713 100644 --- a/arch/m68k/include/asm/motorola_pgtable.h +++ b/arch/m68k/include/asm/motorola_pgtable.h @@ -81,12 +81,6 @@ extern unsigned long mm_cachebits; #define pmd_pgtable(pmd) ((pgtable_t)pmd_page_vaddr(pmd)) -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) - static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot); diff --git a/arch/m68k/include/asm/sun3_pgtable.h b/arch/m68k/include/asm/sun3_pgtable.h index 30081aee8164..73745dc0ec0e 100644 --- a/arch/m68k/include/asm/sun3_pgtable.h +++ b/arch/m68k/include/asm/sun3_pgtable.h @@ -76,12 +76,6 @@ #ifndef __ASSEMBLY__ -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) - static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { pte_val(pte) = (pte_val(pte) & SUN3_PAGE_CHG_MASK) | pgprot_val(newprot); diff --git a/arch/microblaze/include/asm/pgtable.h b/arch/microblaze/include/asm/pgtable.h index e4ea2ec3642f..b1bb2c65dd04 100644 --- a/arch/microblaze/include/asm/pgtable.h +++ b/arch/microblaze/include/asm/pgtable.h @@ -285,14 +285,6 @@ static inline pte_t mk_pte_phys(phys_addr_t physpage, pgprot_t pgprot) return pte; } -#define mk_pte(page, pgprot) \ -({ \ - pte_t pte; \ - pte_val(pte) = (((page - mem_map) << PAGE_SHIFT) + memory_start) | \ - pgprot_val(pgprot); \ - pte; \ -}) - static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot); diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h index c29a551eb0ca..d69cfa5a8ac6 100644 --- a/arch/mips/include/asm/pgtable.h +++ b/arch/mips/include/asm/pgtable.h @@ -504,12 +504,6 @@ static inline int ptep_set_access_flags(struct vm_area_struct *vma, return true; } -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) - #if defined(CONFIG_XPA) static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { diff --git a/arch/nios2/include/asm/pgtable.h b/arch/nios2/include/asm/pgtable.h index eab87c6beacb..f490f2fa0dca 100644 --- a/arch/nios2/include/asm/pgtable.h +++ b/arch/nios2/include/asm/pgtable.h @@ -217,12 +217,6 @@ static inline void pte_clear(struct mm_struct *mm, set_pte(ptep, null); } -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ -#define mk_pte(page, prot) (pfn_pte(page_to_pfn(page), prot)) - /* * Conversion functions: convert a page and protection to a page entry, * and a page entry and page directory to the page they refer to. diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h index 60c6ce7ff2dc..71bfb8c8c482 100644 --- a/arch/openrisc/include/asm/pgtable.h +++ b/arch/openrisc/include/asm/pgtable.h @@ -299,8 +299,6 @@ static inline pte_t __mk_pte(void *page, pgprot_t pgprot) return pte; } -#define mk_pte(page, pgprot) __mk_pte(page_address(page), (pgprot)) - #define mk_pte_phys(physpage, pgprot) \ ({ \ pte_t __pte; \ diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h index babf65751e81..e85963fefa63 100644 --- a/arch/parisc/include/asm/pgtable.h +++ b/arch/parisc/include/asm/pgtable.h @@ -338,10 +338,6 @@ static inline pte_t pte_mkspecial(pte_t pte) { pte_val(pte) |= _PAGE_SPECIAL; re #endif -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ #define __mk_pte(addr,pgprot) \ ({ \ pte_t __pte; \ @@ -351,8 +347,6 @@ static inline pte_t pte_mkspecial(pte_t pte) { pte_val(pte) |= _PAGE_SPECIAL; re __pte; \ }) -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) - static inline pte_t pfn_pte(unsigned long pfn, pgprot_t pgprot) { pte_t pte; diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h index 2f72ad885332..93d77ad5a92f 100644 --- a/arch/powerpc/include/asm/pgtable.h +++ b/arch/powerpc/include/asm/pgtable.h @@ -53,9 +53,8 @@ void set_ptes(struct mm_struct *mm, unsigned long addr, pte_t *ptep, #define MAX_PTRS_PER_PGD PTRS_PER_PGD #endif -/* Keep these as a macros to avoid include dependency mess */ +/* Keep this as a macro to avoid include dependency mess */ #define pte_page(x) pfn_to_page(pte_pfn(x)) -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) static inline unsigned long pte_pfn(pte_t pte) { diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index 050fdc49b5ad..293a7776fe07 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -339,8 +339,6 @@ static inline pte_t pfn_pte(unsigned long pfn, pgprot_t prot) return __pte((pfn << _PAGE_PFN_SHIFT) | prot_val); } -#define mk_pte(page, prot) pfn_pte(page_to_pfn(page), prot) - static inline int pte_present(pte_t pte) { return (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROT_NONE)); diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 3ee495b5171e..db932beabc87 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -1449,11 +1449,6 @@ static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot) return pte_mkyoung(__pte); } -static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) -{ - return mk_pte_phys(page_to_phys(page), pgprot); -} - #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) #define p4d_index(address) (((address) >> P4D_SHIFT) & (PTRS_PER_P4D-1)) #define pud_index(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD-1)) diff --git a/arch/sh/include/asm/pgtable_32.h b/arch/sh/include/asm/pgtable_32.h index f939f1215232..db2e48366e0d 100644 --- a/arch/sh/include/asm/pgtable_32.h +++ b/arch/sh/include/asm/pgtable_32.h @@ -380,14 +380,6 @@ PTE_BIT_FUNC(low, mkspecial, |= _PAGE_SPECIAL); #define pgprot_noncached pgprot_writecombine -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - * - * extern pte_t mk_pte(struct page *page, pgprot_t pgprot) - */ -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) - static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { pte.pte_low &= _PAGE_CHG_MASK; diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h index 2b7f358762c1..ac115adb488f 100644 --- a/arch/sparc/include/asm/pgtable_64.h +++ b/arch/sparc/include/asm/pgtable_64.h @@ -225,7 +225,6 @@ static inline pte_t pfn_pte(unsigned long pfn, pgprot_t prot) BUILD_BUG_ON(_PAGE_SZBITS_4U != 0UL || _PAGE_SZBITS_4V != 0UL); return __pte(paddr | pgprot_val(prot)); } -#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) #ifdef CONFIG_TRANSPARENT_HUGEPAGE static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot) diff --git a/arch/xtensa/include/asm/pgtable.h b/arch/xtensa/include/asm/pgtable.h index 1647a7cc3fbf..cb1725c40e36 100644 --- a/arch/xtensa/include/asm/pgtable.h +++ b/arch/xtensa/include/asm/pgtable.h @@ -269,17 +269,11 @@ static inline pte_t pte_mkwrite_novma(pte_t pte) ((__pgprot((pgprot_val(prot) & ~_PAGE_CA_MASK) | \ _PAGE_CA_BYPASS))) -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ - #define PFN_PTE_SHIFT PAGE_SHIFT #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) #define pte_same(a,b) (pte_val(a) == pte_val(b)) #define pte_page(x) pfn_to_page(pte_pfn(x)) #define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)) -#define mk_pte(page, prot) pfn_pte(page_to_pfn(page), prot) static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { diff --git a/include/linux/mm.h b/include/linux/mm.h index 7b1068ddcbb7..3ef11ff3922f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1916,6 +1916,15 @@ static inline struct folio *pfn_folio(unsigned long pfn) return page_folio(pfn_to_page(pfn)); } +#ifndef mk_pte +#ifdef CONFIG_MMU +static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) +{ + return pfn_pte(page_to_pfn(page), pgprot); +} +#endif +#endif + /** * folio_maybe_dma_pinned - Report if a folio may be pinned for DMA. * @folio: The folio. From patchwork Mon Feb 17 19:08:30 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: 13978493 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 0B608C021A9 for ; Mon, 17 Feb 2025 19:08:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5B2D5280087; Mon, 17 Feb 2025 14:08:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 54BBB280085; Mon, 17 Feb 2025 14:08:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 03FCC280087; Mon, 17 Feb 2025 14:08:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A466A280080 for ; Mon, 17 Feb 2025 14:08:42 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 307A3A04D7 for ; Mon, 17 Feb 2025 19:08:42 +0000 (UTC) X-FDA: 83130373284.05.3DA92FD Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf02.hostedemail.com (Postfix) with ESMTP id 63D1D80014 for ; Mon, 17 Feb 2025 19:08:40 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="QnkS/IDl"; spf=none (imf02.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=j0C36cwE02tcp83xir3MVAFQIG4vvurnU5t2AtfKn0w=; b=8Nm/1LEY8zA2olHLJ2iKrMP3oLSkmLZNBGgWDwfwtpl6G+EEhQd/58RCcQdTCGyiHVFl0Q dkMoutF5x52L0BnRPFy7WxDwH8zD+XvbCtle3lkie1ymyDWasKwFKKffnOAez62YnaalJg X8R2zqhpz8BKZeUkn4CjpzMPV63KR1E= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="QnkS/IDl"; spf=none (imf02.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=Zib9UmkYIMNFldMUdeaWz4Dh8HG8K0Eo6y7dg7IwdNQ7I14eRhJCoKliKoDJnvq7sHasXV p5Pc3EVN6O1qVUKXz3cMhFw30RUY751VzeAVi4yGArpFqKI8a9IP2W6/z6C05nLBdR/Sbi jmiD/ZtTo/Py3MGpMIFsTQyvlVfrTTA= 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=j0C36cwE02tcp83xir3MVAFQIG4vvurnU5t2AtfKn0w=; b=QnkS/IDlpFNbxP+1NPSLKrdsh0 W3YPFFdUYdE5bv+IkKv1DttNFhjdfeK3JoNCcH2tDcwHkIiWvg/C2a4wH/u3IHTb4YM/lxTlMkakQ MgeRGI7FcqDMPeId+YYyjBB4W86R7pZIdHQq7dYEXsK1M2u2KGFAQTokc2mFFTRlaoenqS0bKIjqZ aJ6NzWzfDrjw12g+GkzYADGVkGEOfzkaxmBopCBOeVfBtOQq/NWVXjDBWokSfk0bSXo2D78KbAe3A Xdwcq0TaABahPOiqCpI7JbV5wN8PwHPqxR0WfXpLKmBzkFD+B3iU+27xyl7mm17JJpUaSP1DZgs8B tKN5k9xw==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tk6Tu-00000001pBH-3P3E; Mon, 17 Feb 2025 19:08:38 +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 3/7] sparc32: Remove custom definition of mk_pte() Date: Mon, 17 Feb 2025 19:08:30 +0000 Message-ID: <20250217190836.435039-4-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-Rspam-User: X-Rspamd-Queue-Id: 63D1D80014 X-Stat-Signature: 6461y881b7ehkskgrojxaafj4786dhh6 X-Rspamd-Server: rspam03 X-HE-Tag: 1739819320-777926 X-HE-Meta: U2FsdGVkX1/VV62Q9zB7BjRiVBpEQR0VV20G1iuZMOqVENrd4u1LgRMf6haGAZJl1Raukts5Qkd/gCvY8o+Fv77OWqsPdiQZgIGxfGrHefofrW6TKU1XWfbhX0BkbtxVbE7Gd/0BhMzax9TxJalBRx5hezTLealTr1eo2BKbJIuEmij9I0HfyQI62N+S8XmTzyebRIbhOBU2tajYRhhFV9W4JIYQs6xcZ7LyayABCQebGDzVI9e861DS6crg3rznQ3g9pekEhHeYEWlFkwxqR2LaeBGddMqsQkVGd99Q1CEhgn0CQPspwL2qLFvPIFu8RpRQQ20Y0awu36Uzz/lo2diJQuWIrDNCZoUz0hPDwWzOtV37SH1cXe6YBBBTA1qnCwPZf0gHoYwug/hCsPIjU6Zc38HlfOt05ErCfSCN6e5/3xo67wkP+GYOSL/2rG5DCNML459X09ujmB8h8pUM/CrP7pV9uOsl9zaUHP5g75q0UOHZZohAEGIR0r+8NWTR+rJ1tYS9jRgzx6q0241NeL3J3PEcwNnSUQunqsniMb1D/4YKqx123RCI5sblKAJ613loI+APZDjI8lpoM5yOFe9qxygnK1+Yf5PZkt0K98eWzZV4BjTSddh5VNK/qzvGae+V7CXn+UatHmCk1a52qKGb5+OL5e2GiGRzN/GkPPINCOdBEmGAhV4r+4j1qkAjYv2cvpp/r9dqco49RBdrQQ09bmx7GXUtr8Kk+wlOzBT7XFjkNWJAJIsTrcUv5snuFTzGd9e0RJB/G2nCjt6Li1HsmK64vORFmu6DhdlPC/1Zs3MVf+2E3OulJgIj+euiijOmCdGtBpYdjlsFIQzPYEEcehFh+AERuyK4YfrKhQpoZ0XK+U3aNQOJBGFmIvfnX0+oT7tJ+egXMavQDBeSxNsJwo0vlU+F4hIRarozeswERAAP8pVjZibkhizt/VPfotrFWMo9EVhsxKjOoyq jNkCb0za MTN6fYoph4pDv7R+1sjczq5GE3u/LSC3azEXx5nV8hNXvs5J83fvQmkxe3eLdh0F0H6laqpzTFshnNmGWEO0Ht71dt4BLoczqetFIgnN4Z5choQS3qgQoWOY15TiI48JeA/CJ4zdidyYRb+KMbVVh2TEnIk30GDVHVVzZHpEz3gMOkBoc256b5+e6tptgu9qxqxaxTocU841X21/bg8oGamo76jzDh33fNwpNlxNoqHoT2uJ0FYQSZQwRnVwseTnw8lqrZLfDL0xjaOtlTd2gfCpY4RgcBDjTcuyC 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: Instead of defining pfn_pte() in terms of mk_pte(), make pfn_pte() the base implementation. That lets us use the generic definition of mk_pte(). Signed-off-by: Matthew Wilcox (Oracle) --- arch/sparc/include/asm/pgtable_32.h | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h index 62bcafe38b1f..1454ebe91539 100644 --- a/arch/sparc/include/asm/pgtable_32.h +++ b/arch/sparc/include/asm/pgtable_32.h @@ -255,7 +255,11 @@ static inline pte_t pte_mkyoung(pte_t pte) } #define PFN_PTE_SHIFT (PAGE_SHIFT - 4) -#define pfn_pte(pfn, prot) mk_pte(pfn_to_page(pfn), prot) + +static inline pte_t pfn_pte(unsigned long pfn, pgprot_t pgprot) +{ + return __pte((pfn << PFN_PTE_SHIFT) | pgprot_val(pgprot)); +} static inline unsigned long pte_pfn(pte_t pte) { @@ -272,15 +276,6 @@ static inline unsigned long pte_pfn(pte_t pte) #define pte_page(pte) pfn_to_page(pte_pfn(pte)) -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ -static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) -{ - return __pte((page_to_pfn(page) << (PAGE_SHIFT-4)) | pgprot_val(pgprot)); -} - static inline pte_t mk_pte_phys(unsigned long page, pgprot_t pgprot) { return __pte(((page) >> 4) | pgprot_val(pgprot)); From patchwork Mon Feb 17 19:08:31 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: 13978492 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 BDB5FC021A9 for ; Mon, 17 Feb 2025 19:08:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3D35F280080; Mon, 17 Feb 2025 14:08:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 288BB280088; Mon, 17 Feb 2025 14:08:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EE3D2280085; Mon, 17 Feb 2025 14:08:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id B5472280087 for ; Mon, 17 Feb 2025 14:08:42 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 6C67DC0BDE for ; Mon, 17 Feb 2025 19:08:42 +0000 (UTC) X-FDA: 83130373284.01.2D99436 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf25.hostedemail.com (Postfix) with ESMTP id C3190A0012 for ; Mon, 17 Feb 2025 19:08:40 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Yjd8aRGz; dmarc=none; spf=none (imf25.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=1739819320; a=rsa-sha256; cv=none; b=SGj2m3IjNvO5Br7wq54eDUGImngoHf1nbdzAF7GYLbq2ZnpgFhibkvywwtj34WhV2l5swf fPwK2DhDlJ2HoW++JO3HA3TIVUxic571uhrXXNrvey4qADT5xPvpcyOBE36h4WM1NGtHXL 3o4JPrAitOsTwsGpI2Vx78w/mOQ7cHQ= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Yjd8aRGz; dmarc=none; spf=none (imf25.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=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=F91J/zBN9mXNlWAyjwC2ekau5s1Hok6GIOYF8L/kjeM=; b=bjoNTfhikXacdiV/0s1HnUijbKKM64AasKyyTDvV0HERAa1ZisqqgjlKO6SrswScAP2gth tHzNOFo/jRR8tKZg+KujUY5ASft63ee/di/ipmHtSw2hYgz3kLDQJGZdUs0QTIEsfq4hWY QsnDv9XwXUN9/DGYo7ypksE7tphHHBw= 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=F91J/zBN9mXNlWAyjwC2ekau5s1Hok6GIOYF8L/kjeM=; b=Yjd8aRGz2wgGTd2aQB03xz1svM pad6TWhGTet5r5tkDe5SPhvMligYOVpyvs8WL4GxNO3hvIiEeBBIeCu/08/Luori/Y3kOo7Y6a6ls g/RoDjqKdMXrQyVKmAGtS1ozR0x2KsU9A2P0tsGgkGZVKEuthTil9oVE1RihJ3Y71jZzs1PKj8FzN zpO1z7+a8WFQeCo4AOBmoLja/ks9OdskhNB1xSwp9dHSHwK0Rs8lvQQZ2z21oHVDaiIfYXt6S3ASX Lyueov9us25LJavEjIEBNwgmazTmKMGvvc10FWFfHGwQXXr4Qo+EwBPukrmN6+DbyBLrqDZhjxErB EbkbBikA==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tk6Tu-00000001pBJ-3kf2; Mon, 17 Feb 2025 19:08:38 +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 4/7] x86: Remove custom definition of mk_pte() Date: Mon, 17 Feb 2025 19:08:31 +0000 Message-ID: <20250217190836.435039-5-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-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: C3190A0012 X-Stat-Signature: rq9k556euj7qm7bhzifgdxh9pp4nxb5a X-Rspam-User: X-HE-Tag: 1739819320-988195 X-HE-Meta: U2FsdGVkX18NxhgWo6MlmzVU3ZS3Y2JBGwoap5/8Lr/obKvNO4+7tQpnD/zVONKMEFaNSbvmEB/WX0UMru6gMn35g2uHqx9on7aTsycB983TBOJHZb5SYuMAZgH7jnl84N/YfDISQpEugDa7j1cElqvFY3IjtAe1nKnHizFYLqT+CvuVx7wd+Ipw9TszAexOJ+HwYD34zq7FwWSOd56lrOfmIaRdCqBtbTCq16VaiZak4xoPZaNb4Dwk2Ssx5lskFAeCFX1QL/WUZfN3kTGq2GI92KKJcSw3oFOMdIodCW6z+qRLUIN+Fcqv1q2Ej/JZnNRXbHF3yRffqFNx7XenGkPruhvcGAnwUdUlQ9o0aWntn52GEFH1Nbf6uefHQatCGX1EctwuCQ09b0IJ1B1njZc7ek6NIlKBg9KiRnpcNNe9yba+frRSKf6R7E/Tykk5/BpajpGs7shPWuCoACSniYD0m4wygRqofQhcJZc/cRirGKBuY0PwoqMZNBnA+Lt/QyhmiwOvSKMIK3lF9/3pAIKlILsS3IrKR4KnWYD/4qgG1XNBtc7KFgCtdVu8OCgTa0nqS2swp2G4MqjKPTgE+uD4tE++KqkTgkMwlDZVpqJ3iVOaQDth3hMuCmEdssIatGOFv+L4wy6tSJEVwNx6wFA1TzOblX9s3byHdZ8kXje56/xoGGg8keTinAs00/l3Qy0QyYELZbK1fnpet7yEHOmwnypVcCIocSt++mFyusNTliL5kFSs2LHq/vTiJIIPc8EP2ntaBrgJ7IxjGZ4RUgSOg2/4lhYSJ8X9DjiiAvkH59oM2+lVzqnix3tKAxW1DbqM15/zk12VhDs4G9tm914SaI6jUfqT64IuJMMsuIaIwq18Z5w+jMgS4BioiK2eDBULCJ+z6mO37UP1JDzGLW4WEVcHT9A94lrMxzN5Yac+TjLSm+zbIG97QxQjsQkBOdROU6E1gM3kNukm5cX zqvBlK8F 2FTkC0MzRVEHuO7KCqAkZWi1BWeapEqSmf4Oxd+mdB7w3t7LnQIWPwVj88savS0+P8MpGkMiMDmvARwT/X2GsScQmXPeCn5WNjtw5wJ7QFKLvUV/B1TyEdKAoVC5Kc5YuHP7uzrcpyAFJvSGLcRqazLMIGrK8yu5pkLoRbKsxrkioRtjXjtjtKne/vqsPX/wk7hvLLQ5mj9eDpb4afWMXlOHk/l8pNDfGq9lfd4RPCzcLG4zAx47Z/o3whvrtTlhYmtkPI2kQpXTJqC4V81mUc99JvvEohaVYElxy 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: Move the shadow stack check to pfn_pte() which lets us use the common definition of mk_pte(). Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Dave Hansen --- arch/x86/include/asm/pgtable.h | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index 593f10aabd45..9f480bdafd20 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -784,6 +784,9 @@ static inline pgprotval_t check_pgprot(pgprot_t pgprot) static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot) { phys_addr_t pfn = (phys_addr_t)page_nr << PAGE_SHIFT; + /* This bit combination is used to mark shadow stacks */ + WARN_ON_ONCE((pgprot_val(pgprot) & (_PAGE_DIRTY | _PAGE_RW)) == + _PAGE_DIRTY); pfn ^= protnone_mask(pgprot_val(pgprot)); pfn &= PTE_PFN_MASK; return __pte(pfn | check_pgprot(pgprot)); @@ -1080,22 +1083,6 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) */ #define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - * - * (Currently stuck as a macro because of indirect forward reference - * to linux/mm.h:page_to_nid()) - */ -#define mk_pte(page, pgprot) \ -({ \ - pgprot_t __pgprot = pgprot; \ - \ - WARN_ON_ONCE((pgprot_val(__pgprot) & (_PAGE_DIRTY | _PAGE_RW)) == \ - _PAGE_DIRTY); \ - pfn_pte(page_to_pfn(page), __pgprot); \ -}) - static inline int pmd_bad(pmd_t pmd) { return (pmd_flags(pmd) & ~(_PAGE_USER | _PAGE_ACCESSED)) != From patchwork Mon Feb 17 19:08:32 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: 13978494 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 29125C021AA for ; Mon, 17 Feb 2025 19:08:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC602280088; Mon, 17 Feb 2025 14:08:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A4F75280085; Mon, 17 Feb 2025 14:08:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8582D280088; Mon, 17 Feb 2025 14:08:44 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 5BC21280085 for ; Mon, 17 Feb 2025 14:08:44 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 17C6DB1B2F for ; Mon, 17 Feb 2025 19:08:44 +0000 (UTC) X-FDA: 83130373368.10.3FD779C Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf04.hostedemail.com (Postfix) with ESMTP id 77C1F40008 for ; Mon, 17 Feb 2025 19:08:42 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=YXhaJWKL; dmarc=none; spf=none (imf04.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=1739819322; a=rsa-sha256; cv=none; b=uKreyX3/QQ4FzEdziZp9thtbXmLbO3KXLrh2bas/eo+y8WiG7pz9UGCAtF/ZpLWoMrX2uv GmnTtR+k1eZaJJ/Tx+PnpEfnX0jFFHhxcT7UiNZzuJCTgKXHpWEPlBftNet35gQ5CFDh1r HkaXtYtISgiSk8f5l2g/vAtt2B+TgAE= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=YXhaJWKL; dmarc=none; spf=none (imf04.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=1739819322; 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=irsUPCJDDf9sWPbOR5tfnHLkyAVI2ujQHmur4Rc6/5I=; b=7pPZgZXZ1KehHwMzZwcnmldbGUsTVSnVRX/Y/C9VtrD4GUMshJ54jqkguYB+jOWm/7yZ2v pUaeHb5ULfpsx/n3z3fxfj4J6iS29aqcfH1Bzby14n2fG1yjYwmxYL9AlXBEu/V3qr6aAU PPkZtcercHpEe4n+xOW+Okb/xCUVMFg= 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=irsUPCJDDf9sWPbOR5tfnHLkyAVI2ujQHmur4Rc6/5I=; b=YXhaJWKLYm+FmviTMlIhMOBmPJ PdTTcuf/M3ukyskR8HsQNa9WRzD5eyRz2Y8U5uC+ZBVNLRmB/zBDIZriJnVP4mUqtZLb8CrAPmfbw r1jHXZk3tuoSZ+tMoN/W7PZnxDKajMvW+2F7/ap+qB8onNjw2rwB4S3+Zp6LbX9wAkbFZQly0p7Xm wKAjrJYQrOzYpalnDopo1OtWgGHqxi0cPxuHXbDMxHMAGmv1cCuh7GpDCZjDsCTfhtqUYInwMM3cN oXU4pgZO6LzJ4Pht2G+33kYABnQ6jUlUv6v3ogxyM8XV+Zub6EQJCrLrvMKMbmtFQeZMRgquxNLIC NZu0XKhA==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tk6Tv-00000001pBP-01vp; 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 5/7] um: Remove custom definition of mk_pte() Date: Mon, 17 Feb 2025 19:08:32 +0000 Message-ID: <20250217190836.435039-6-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-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 77C1F40008 X-Stat-Signature: zgeb95i46sufwt7wrdogzaw8sohq5r33 X-Rspam-User: X-HE-Tag: 1739819322-37126 X-HE-Meta: U2FsdGVkX187UMbijye+Qwcsr2X/cfFCTFiOoJ8CNO3yUzU1Ts/daWYiP84+l6/aq0kCHpusVnC9zElB/bIy+DBdQK/9FiOLNsnhpgO2ug6aOkpOohehZMAmaT0n/zj+mjgt6AjbTElR2vZdwNBYR8uojjvIPR6YzQ8N1PIAc8O0mx6gVhpOMufQDk8BEKUFcN/b210K9dgONzf/fxzuyv6LtpmK80ePhC328z7VZwgkeDGeq1qhZQ729kqBWgVmbFlJUX80OhpTA5gFatNDrXC01t/C4A+aoIBcj5hkJbQYFnjremsYFry8+HI3C9voz2JUg765VNJjvmp6N1rI1QCf5hCHDlfLdA8Q6Og2VDTs3tRsIzLu2nQlbs+9VCuSOVaHbFn9c0AySYpJ//csMumbCF3Qdyco81kdDJTR0S25t4CosL82jcR2vpxAaSVhzdzMd4HK7Q3Ysczet8uf9yZWSjrD1IqH1WTomBkhp2cgazNp5EzVG495egR2o5JrvWTXhLBGS3kuPqKACQV/BdnuXgOtjWGtEqJq2jvS4jXUTYEqtcEPCFrf17D+/KGLmJtRaMs2WOw4igiGV3CKgVIcpYZ9naYC2KQtx2XhkxFrVcHuv1FMOvGGMIlqocwSU4wGHccwcShbMch1Af47BRlIg52FX6mkNabp773qL6CCoTmvRWuuni2/WvQdhDlr6ivRoqbsGxuSeGlbMNstli5GWR2D26pSNFIPH2J0IT1rNiPP33aZmElJ2s+NoamuRzgtM740b8l9trZcEroHlGBzm1RJOW2h5hr2L7T2y/ys1PgV52C9r0S0T2lcSewrDGuRyFYapbE4ShlyWq9vZegH3kmrNigRbmBNScv37pHkF8GM2X4Ll2bRWzmVQf+4+QthiN/B7CJ8f5I7RyLruLRZeaJfl9kIWOBag2bFkcePvU/AfwDvj9nQXDRfMjDPzrjsVqWFhp9egojiRNK WB3ZdBV+ AyzW0B2PXX76EhGiSanUpuq3bw5uq1fJS278m8n3dAD54ntIEC4I/WnfHHyPt0SbSoT6oVDAuOJ151vpj9zJfZLOWrBorkzWcdaKaMqfaA+6PGjKdYTuojWk3N5Bdqbzbg5QODJ/r/y06EzcP6vzoDUlNbM2qzyT0dbLoLvviB05z9b/n9N29ezcLXgv/MJc8cQiP6t+cNH4k77nqVh1MSELi7rV89iqk0u4QR5mXHQKdkIVleajj9Thutv4pc2hjuvSmNbAdVzWYavGVA68G+P95FmWFaBQYiokm 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: Move the pfn_pte() definitions from the 2level and 4level files to the generic pgtable.h and delete the custom definition of mk_pte() so that we use the central definition. Signed-off-by: Matthew Wilcox (Oracle) --- arch/um/include/asm/pgtable-2level.h | 1 - arch/um/include/asm/pgtable-4level.h | 9 --------- arch/um/include/asm/pgtable.h | 18 ++++++++---------- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/arch/um/include/asm/pgtable-2level.h b/arch/um/include/asm/pgtable-2level.h index ab0c8dd86564..14ec16f92ce4 100644 --- a/arch/um/include/asm/pgtable-2level.h +++ b/arch/um/include/asm/pgtable-2level.h @@ -37,7 +37,6 @@ static inline void pgd_mkuptodate(pgd_t pgd) { } #define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval)) #define pte_pfn(x) phys_to_pfn(pte_val(x)) -#define pfn_pte(pfn, prot) __pte(pfn_to_phys(pfn) | pgprot_val(prot)) #define pfn_pmd(pfn, prot) __pmd(pfn_to_phys(pfn) | pgprot_val(prot)) #endif diff --git a/arch/um/include/asm/pgtable-4level.h b/arch/um/include/asm/pgtable-4level.h index 0d279caee93c..7a271b7b83d2 100644 --- a/arch/um/include/asm/pgtable-4level.h +++ b/arch/um/include/asm/pgtable-4level.h @@ -102,15 +102,6 @@ static inline unsigned long pte_pfn(pte_t pte) return phys_to_pfn(pte_val(pte)); } -static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot) -{ - pte_t pte; - phys_t phys = pfn_to_phys(page_nr); - - pte_set_val(pte, phys, pgprot); - return pte; -} - static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot) { return __pmd((page_nr << PAGE_SHIFT) | pgprot_val(pgprot)); diff --git a/arch/um/include/asm/pgtable.h b/arch/um/include/asm/pgtable.h index 5601ca98e8a6..ca2a519d53ab 100644 --- a/arch/um/include/asm/pgtable.h +++ b/arch/um/include/asm/pgtable.h @@ -260,19 +260,17 @@ static inline int pte_same(pte_t pte_a, pte_t pte_b) return !((pte_val(pte_a) ^ pte_val(pte_b)) & ~_PAGE_NEEDSYNC); } -/* - * Conversion functions: convert a page and protection to a page entry, - * and a page entry and page directory to the page they refer to. - */ - #define __virt_to_page(virt) phys_to_page(__pa(virt)) #define virt_to_page(addr) __virt_to_page((const unsigned long) addr) -#define mk_pte(page, pgprot) \ - ({ pte_t pte; \ - \ - pte_set_val(pte, page_to_phys(page), (pgprot)); \ - pte;}) +static inline pte_t pfn_pte(unsigned long pfn, pgprot_t pgprot) +{ + pte_t pte; + + pte_set_val(pte, pfn_to_phys(pfn), pgprot); + + return pte; +} static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { From patchwork Mon Feb 17 19:08:33 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: 13978491 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 317F0C021AB for ; Mon, 17 Feb 2025 19:08:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 151B1280086; Mon, 17 Feb 2025 14:08:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0DD07280080; Mon, 17 Feb 2025 14:08:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E47A4280086; Mon, 17 Feb 2025 14:08:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id A5BA4280085 for ; Mon, 17 Feb 2025 14:08:42 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 264A680A68 for ; Mon, 17 Feb 2025 19:08:42 +0000 (UTC) X-FDA: 83130373284.02.DBA69C2 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf23.hostedemail.com (Postfix) with ESMTP id 6B870140002 for ; Mon, 17 Feb 2025 19:08:40 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=thrH97rg; dmarc=none; spf=none (imf23.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=1739819320; a=rsa-sha256; cv=none; b=C2JRrUy8k6tde5dsu7b8JRtoy8XE+bGEIiC/b81P9+Rqy159HvZrkH2Y7sJziOqVaaLsXs jpgaJgjslPTieCHqC8BESBUx0HfTcMKF9BB1mRYMnbiQdt4Wq5WrBdmCGpePsN5F7J/Dp4 JZPLOATediX6c1I3vOKpppOCa2i9aAQ= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=thrH97rg; dmarc=none; spf=none (imf23.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=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=atMZRm9oTSJ7EdJlQ3h7iJvkLCf12vGPXz2zKSkO6zo=; b=WXFWaSd2r8TuA8VJTaGfPyQ0puZqnfZ0MP3Rv7LVuyk6a/0IWOPUCn+UqbgFEWrAxbhved gwuHsb7cqTLBDhf6nLLnirkh8YAQ7GWWrG4BJl74MmjZwtoa8/ds1TAP2nspwkSY26z5+S wdOT2XrGO2DShW0jCgcufyIJgL6Nbn4= 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=atMZRm9oTSJ7EdJlQ3h7iJvkLCf12vGPXz2zKSkO6zo=; b=thrH97rgQk5cY6SsCjZalRSn93 HEQL4Fk+SimS8m8tDxDCmy2Unz81Dre8AePAFchB1p5SNzijFyHibJ6leOgVkq7ydpyDSd1Hm5diu lFGZZqXQR5j2Tf4MB9wann/BnSax/OOuva/9PjoPPkSnezTUoKZpBEA/tIukuYEAm9AD5qRyIh4lW Y1jjuvk2H/pOVPtbROx5QUrqcuMMBMlVw5lALGiInZjC638qVSFtxWjFoKxtL2gYFsWl3fdFPcDEh IaffNaod96rCTnh7P8Ih+8Zbq/i1e1Ux3LterFamX4KVy9Th0HjUymOZL87+i9HUhimY9zJy/brrk 4dPWDbnw==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tk6Tv-00000001pBc-0Zy7; 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 6/7] mm: Make mk_pte() definition unconditional Date: Mon, 17 Feb 2025 19:08:33 +0000 Message-ID: <20250217190836.435039-7-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-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 6B870140002 X-Stat-Signature: wukpjrsubsg6tq4xqf6ne73jcb7t9bqx X-Rspam-User: X-HE-Tag: 1739819320-904207 X-HE-Meta: U2FsdGVkX1/cyuWxBGzrVPLVIsp5reJW2VDVOZi8R59/X7MB009Cua23zK4S7EzYBXezRHkcFj7WwaCsa5r9Hyyj8ZZeEk18qtP0BbdhwCy2XE/hYD9n/Jx1x44Y/Ctp9Pk4DGGDRvPibx9iyONTwI0qIQiLLuKwdC1M3Y/sY6ET01KK021NFT27OkoD7dtVDfoNpn3krc2KouaPSDieNZhRbIf/8Q6vHBuWBjlpWWIMJWsF+6XZcGHO+AAH/PcTSYL5fv7lMqvtShLyxNzKKKyhAO3t63dC9tQ3e1KcofGmEBhkIMWAx9svg0DUUZWyij5hyvH9I4YbnBTqagj/WTP6SKLGf1xvqE4/76Rzl0peb3ncr6nYr7yrNG98RMKfFWyx+NolSGoId8egzIWfQCRAYaY31lQM3L6RrxZWuN9y4hsmJfuF+4TmbJlJ7iSgIEbJIopMSIQYM1xAN4PEC8xVXkczG79JkU6xGnO8sDHiubABLjd6GdDA5/5AiFOFRqRMMSMtQKOwcz6gXBGQt5ziA45KB/rFynmykdwB/NqUE/Djsn3k2QLblqz+Abt8XkgGmf5XnvFRuBEvSeagp3N2EnSThsgv0Nr4VGLWnee84LgWPZbxcAR7D1FL/22nKceJH1EzXkFchba8DuTNkICdbS45UblcQ9e0PoIpAzP2ur2FuqfHyDnq8ZeZA0HxBcvMIamflcyFsaHgaa6AsnmOebHGsg8aqOHv0gD1nzl+duv5B1IFA7PUFOin94WAz4PfH5+q0yFKrREYkOUkeNLumksiOK6Ulu/4vTyPsxAePd/fnKPpRqtkYT1b5xcJYXw8nHOSRCRTdKxwDjVVJBDRZsNkY8RXVYj+BxXwZTuZZgLcLvU16LkHnTiWu7gWNrBLRiVdz7ZwNrdh+139Fnv+5aO5QdRmES2yhgwWLXh5FKiasyJnMW1S/lwzj8nfJZoNSTmG48Htp7VyheF Q12yH7pH VFmOb9deUXPb0InLh9n8bgrlbaUM+O2LZnHUvrurtfTQAlmZD/2gK7pkQifsP9ctVxnjYTl7sYB+idJe2WTymL5fuuJNqCb6qkIC5y+/8FHjMe3O+OuPqKn4wr0mn5QAsbP3QoLVPbzoqOVGDzu6KRVmnb0sNfcyqIycwhAnKQ3Q5QnJenXz/BcbClpxJ+bcWReAYPpS7baJgCm93A/2w7Cq47HVizpAsg92bpijvp9gO7msms5jpkixI0Pbk7Z02XR1P8NmeaVwKXvfpU51Of5Zh5f2vZIPD93PN 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: All architectures now use the common mk_pte() definition, so we can remove the condition. Signed-off-by: Matthew Wilcox (Oracle) Acked-by: David Hildenbrand --- include/linux/mm.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 3ef11ff3922f..62dccde9c561 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1916,14 +1916,12 @@ static inline struct folio *pfn_folio(unsigned long pfn) return page_folio(pfn_to_page(pfn)); } -#ifndef mk_pte #ifdef CONFIG_MMU static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) { return pfn_pte(page_to_pfn(page), pgprot); } #endif -#endif /** * folio_maybe_dma_pinned - Report if a folio may be pinned for DMA. 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);