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 61088C433EF for ; Thu, 19 May 2022 05:06:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9FED76B0072; Thu, 19 May 2022 01:06:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9B0926B0073; Thu, 19 May 2022 01:06:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89D246B0074; Thu, 19 May 2022 01:06:40 -0400 (EDT) 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 786FA6B0072 for ; Thu, 19 May 2022 01:06:40 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 50BA9320C0 for ; Thu, 19 May 2022 05:06:40 +0000 (UTC) X-FDA: 79481307360.15.C86D818 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf02.hostedemail.com (Postfix) with ESMTP id AD17180005 for ; Thu, 19 May 2022 05:06:38 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C1B2F150C; Wed, 18 May 2022 22:06:38 -0700 (PDT) Received: from [10.162.42.8] (unknown [10.162.42.8]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AF64F3F66F; Wed, 18 May 2022 22:06:35 -0700 (PDT) Message-ID: <381ed251-ecd0-4047-6ba3-793f23904b2c@arm.com> Date: Thu, 19 May 2022 10:36:33 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v2 5/5] arm64: Add HAVE_IOREMAP_PROT support Content-Language: en-US To: Kefeng Wang , catalin.marinas@arm.com, will@kernel.org, akpm@linux-foundation.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, hch@infradead.org, arnd@arndb.de References: <20220429103225.75121-1-wangkefeng.wang@huawei.com> <20220429103225.75121-6-wangkefeng.wang@huawei.com> From: Anshuman Khandual In-Reply-To: <20220429103225.75121-6-wangkefeng.wang@huawei.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: AD17180005 Authentication-Results: imf02.hostedemail.com; dkim=none; spf=pass (imf02.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com; dmarc=pass (policy=none) header.from=arm.com X-Rspam-User: X-Stat-Signature: 19pocw3zby1uj3jkxbwb5onod4x9me5f X-HE-Tag: 1652936798-199838 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: On 4/29/22 16:02, Kefeng Wang wrote: > With ioremap_prot() defination from generic ioremap, also move s/defination/definition ^^^^ > pte_pgprot() from hugetlbpage.c into pgtable.h, then arm64 could > have HAVE_IOREMAP_PROT, which will enable generic_access_phys() > code. > > Signed-off-by: Kefeng Wang Reviewed-by: Anshuman Khandual > --- > .../features/vm/ioremap_prot/arch-support.txt | 2 +- > arch/arm64/Kconfig | 1 + > arch/arm64/include/asm/pgtable.h | 10 ++++++++++ > arch/arm64/mm/hugetlbpage.c | 10 ---------- > 4 files changed, 12 insertions(+), 11 deletions(-) > > diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt > index a6dcbe5f47b6..b39ad5d61216 100644 > --- a/Documentation/features/vm/ioremap_prot/arch-support.txt > +++ b/Documentation/features/vm/ioremap_prot/arch-support.txt > @@ -9,7 +9,7 @@ > | alpha: | TODO | > | arc: | ok | > | arm: | TODO | > - | arm64: | TODO | > + | arm64: | ok | > | csky: | TODO | > | h8300: | TODO | > | hexagon: | TODO | > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 56673209fdb9..5e5889049af0 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -186,6 +186,7 @@ config ARM64 > select HAVE_FUNCTION_GRAPH_TRACER > select HAVE_GCC_PLUGINS > select HAVE_HW_BREAKPOINT if PERF_EVENTS > + select HAVE_IOREMAP_PROT > select HAVE_IRQ_TIME_ACCOUNTING > select HAVE_KVM > select HAVE_NMI > diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h > index dff2b483ea50..1402a2739024 100644 > --- a/arch/arm64/include/asm/pgtable.h > +++ b/arch/arm64/include/asm/pgtable.h > @@ -402,6 +402,16 @@ static inline pgprot_t mk_pmd_sect_prot(pgprot_t prot) > return __pgprot((pgprot_val(prot) & ~PMD_TABLE_BIT) | PMD_TYPE_SECT); > } > > +/* > + * Select all bits except the pfn > + */ > +static inline pgprot_t pte_pgprot(pte_t pte) > +{ > + unsigned long pfn = pte_pfn(pte); > + > + return __pgprot(pte_val(pfn_pte(pfn, __pgprot(0))) ^ pte_val(pte)); > +} > + > #ifdef CONFIG_NUMA_BALANCING > /* > * See the comment in include/linux/pgtable.h > diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c > index cbace1c9e137..38d03406f6aa 100644 > --- a/arch/arm64/mm/hugetlbpage.c > +++ b/arch/arm64/mm/hugetlbpage.c > @@ -100,16 +100,6 @@ int pud_huge(pud_t pud) > #endif > } > > -/* > - * Select all bits except the pfn > - */ > -static inline pgprot_t pte_pgprot(pte_t pte) > -{ > - unsigned long pfn = pte_pfn(pte); > - > - return __pgprot(pte_val(pfn_pte(pfn, __pgprot(0))) ^ pte_val(pte)); > -} > - > static int find_num_contig(struct mm_struct *mm, unsigned long addr, > pte_t *ptep, size_t *pgsize) > {