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)) !=