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 06F8AC7EE23 for ; Mon, 27 Feb 2023 17:58:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 129256B0099; Mon, 27 Feb 2023 12:57:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 04F826B009F; Mon, 27 Feb 2023 12:57:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B75686B009C; Mon, 27 Feb 2023 12:57:50 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 9B35C6B009A for ; Mon, 27 Feb 2023 12:57:50 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 7436040165 for ; Mon, 27 Feb 2023 17:57:50 +0000 (UTC) X-FDA: 80513829900.06.14BF764 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf09.hostedemail.com (Postfix) with ESMTP id D87D4140011 for ; Mon, 27 Feb 2023 17:57:48 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=XBOe25D8; spf=none (imf09.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=1677520669; a=rsa-sha256; cv=none; b=eDzKZh7peCxqd85nhPue5HXy3D7r6z2DZ7FfjWa+/zl4eHFEqQGq2tj+RLyP0AdW6krrY3 KQrp/sTooK5HudoK2ieooXYZFF3vQ7YJhXfc64yEFKHdb5jgpJwbVMPu6gSpjppX8odJxU +qYmMN/Z2BGj/ARL8Ysu8khIPUf95j4= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=XBOe25D8; spf=none (imf09.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=1677520669; 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=dtiP3hUvA6nDur052lXOuZXkJQbzfHLCDQRu6Y0/CbA=; b=HL9drmnoeeGxmQnJOJ5KyzsXaQWK7EItf9euJQl0KBz6Kr0pXGWjg+OkkEvNwvR3wTZnZX im+CSj8ibcgez2GSMJenAMtg4yzT51R8JrEfgXXK/ZI7XETMY1fVeDT4ZKRiNXlRheFA5O xXUpZ5WqNGV+rDoO3jhbCz2Gccv2ut8= 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=dtiP3hUvA6nDur052lXOuZXkJQbzfHLCDQRu6Y0/CbA=; b=XBOe25D8ILBHFTarSSJcSeNA9I 1ho9edMN4WMOW+STKHU1Fjrea3rZodyLYFfxge7XDJMmfzMLJ5pCij5ce+T8U8wF/UdpEm7/Bz/qs 9nM2/FbCHKKykm8iTTCuAlGyTgQE/GycxrAz4ODI7DXc3tJUA+rJSGPORBHP1Q1tDn6els/rAcXNu nyYSpLPPd/TdxuXWCWgvTme17TJDDIgRhLDaoyZ4+jc4P1FBu1uKCgWDbTmRzt9YGRbp3MINfC48D n14ezuCiX8fXSt33c5Q2tTPA1dQpdTi3Rtl9mrNc5frwFSRQaNc0nMoT7sy55aFkqJjuw/TB8oH1V MaBmNMxg==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pWhkw-000IYY-7M; Mon, 27 Feb 2023 17:57:46 +0000 From: "Matthew Wilcox (Oracle)" To: linux-mm@kvack.org, linux-arch@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-kernel@vger.kernel.org, Richard Weinberger , Anton Ivanov , Johannes Berg , linux-um@lists.infradead.org Subject: [PATCH v2 24/30] um: Implement the new page table range API Date: Mon, 27 Feb 2023 17:57:35 +0000 Message-Id: <20230227175741.71216-25-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230227175741.71216-1-willy@infradead.org> References: <20230227175741.71216-1-willy@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: D87D4140011 X-Rspamd-Server: rspam01 X-Stat-Signature: u5zw1kftrttkgc7o19umnn1ei5mqobab X-HE-Tag: 1677520668-245495 X-HE-Meta: U2FsdGVkX1/UEwMT/hbesAEAFx3GG0CvUvyR9P7/Nc4El3CmhoohStwKBE9/4SIcbp+UyUV1QNpVSP1XwSWbI3z9oTPnve86UNi5QQAHjvsfYklq8aWnjTBJu1y/wOBu7JHZGhz4wbE+hZwUlbxF7F0QJSWeik1OH6XG1hpLt3k53H4A/C9BVp2jK3Bbj33ga3iz8RC3yKpceaqzFnSGlLs6BGQZ5cK4VgHsQYonfPDo9oR4j0zNBBUMDSts2bhkBYk0pD7ACvhRcW+wIfULCgBtCKNpcVvmYC6GQuMc8JC23vUsk8G/LjLriBqi2VUvbGIHn3Dxuj3TMz4+4HrSCAhZ7sG0iLVrTEzxDZoHUZxjMJuPe8CM1LKnBSx31Be/GCoZNmG2EKcJa52+Y0ftc+pgoQhvtEpySnOv/3THsQBtLsB2F4wDTp7Jw8/C+8MWOLk7BaUqY7MUK1JejVUQSrkLIc1Fn2rZplpIqKBcvnV5u6gGTviNwpDpftTr11py1W8T0LdBgugAQJ74UwFPLB33zlKndCSDsara1AAjd4QJ02ShqgtnAd7/jDbZD/Kj0XCgLffPsPMZ0yINEiDK4o+JUp8zP17DkxlLg/5ZHSFCTWxmT3YUwNlrEmJlDFs6y1YPVqZ5sQfwMwTAPG9aa1geJKzQ+kT8CNFP/yKeZ7wK5dO6fXdF1H6a5cetL1zWA7giesWZWm2bi70qNc1qf0qKh3nun4pyiEBglTQRzPb9RXG5Vkjpmxq+0ESHfr6KCWRKsBsZspjJehw+0VBd+JznrDj/kwKV5aoHIRK1MchZIL8HzMOBvXKHXpj4uCOVB1SzrqKDyogfrB8ey8J4tZP2/i6WZ0F7GcS38zBIZhqBnp+4uuhiMYzQ15zVOGv7u9yBUbrgks1VAyDLxrkLS93Z4VLR4qFeQ08pPDyp2M0gDTBFAZOuliGaQS7s41i/aAaeIT/N/A7/0xbSr6o AF1b5591 AUXq/btziQj9lQM8/X/XhHXT48B253RFdXRpvVtUsWW/lINgG68FrGXXCXVpadEmJLws9vrlqcHs5eVBO8PwjnYcot0BJS102fHLQ2uSUaB8uX6Bwo8oWfjXSVIWhsipCs0ypGKwVZd/b0lWOMfC8adodp0SpHTlEvrH8GjC9C6UO+dxv+VMUs+un9FhpRs9o6MzLo3vdNjeYfYyzNFbPZZ6uZgVGD7f7Z5cAPJ74YEWW8kSyVyTIoRzUksgAL0cJTrPIdyAVqKQltwoDuU5LtjJmDx2B9wyu7EaCIZP6K02fI+YsxyNoeOG4JLr9r2+IP5sV 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: Add set_ptes() and update_mmu_cache_range(). Signed-off-by: Matthew Wilcox (Oracle) Cc: Richard Weinberger Cc: Anton Ivanov Cc: Johannes Berg Cc: linux-um@lists.infradead.org --- arch/um/include/asm/pgtable.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/arch/um/include/asm/pgtable.h b/arch/um/include/asm/pgtable.h index a70d1618eb35..ca78c90ae74f 100644 --- a/arch/um/include/asm/pgtable.h +++ b/arch/um/include/asm/pgtable.h @@ -242,12 +242,20 @@ static inline void set_pte(pte_t *pteptr, pte_t pteval) if(pte_present(*pteptr)) *pteptr = pte_mknewprot(*pteptr); } -static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, - pte_t *pteptr, pte_t pteval) +static inline void set_ptes(struct mm_struct *mm, unsigned long addr, + pte_t *ptep, pte_t pte, unsigned int nr) { - set_pte(pteptr, pteval); + for (;;) { + set_pte(ptep, pte); + if (--nr == 0) + break; + ptep++; + pte_val(pte) += PAGE_SIZE; + } } +#define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1) + #define __HAVE_ARCH_PTE_SAME static inline int pte_same(pte_t pte_a, pte_t pte_b) { @@ -290,6 +298,7 @@ struct mm_struct; extern pte_t *virt_to_pte(struct mm_struct *mm, unsigned long addr); #define update_mmu_cache(vma,address,ptep) do {} while (0) +#define update_mmu_cache_range(vma, address, ptep, nr) do {} while (0) /* * Encode/decode swap entries and swap PTEs. Swap PTEs are all PTEs that -- 2.39.1