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 X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D7BD8C433DB for ; Mon, 8 Mar 2021 09:08:19 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 62FBA651A5 for ; Mon, 8 Mar 2021 09:08:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 62FBA651A5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=T7Q7XXO8YDa6U8DH1HFICJrN6TUcF992OaSTtsqX1BA=; b=mGuyNmQdOOoK6emUqrMfEsjlo oNJKhzRD1m8NKjBVviSgay50s7ZExR0S/eB38+bOQIFA5nDgd0qYyG7LOWU89SKA2k3tBUbtHFRgx 6KfgOxRCNdEo9Uh/usyBiqR6ld/FGdSy+tuhnMiwxXNiYUqqBf+M1WCeJUM57DRpRnXgpWYs3NbTc PkjBezx8byqqNPNje9XYS67R8jMMWqBsDoFvDgoqSwiz/Fbet3nT/CDefS6Wa7akr7nPHaveG1TgN NrTYyJqf1ZvgVwMnr2C7qMvPmAJHHkvTROVVdvzUluwXODHL67TZhTBqCCkjXqN1vN3zQaRN1keZx QQsYLNiUQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lJBqb-00G5YY-Do; Mon, 08 Mar 2021 09:06:41 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lJBqX-00G5Xc-J0 for linux-arm-kernel@desiato.infradead.org; Mon, 08 Mar 2021 09:06:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender :Reply-To:Content-ID:Content-Description; bh=QuSB5q+QOnrRCdAHm9s/My/9+k+jSdMugMxoy19SDcM=; b=CMXqHjGhMcFiNg1G4ZbdllTD76 9v2PNn8e+neSnWtM8UY6erQO1NvR6m++kLU0VIGt/Wh+jg+6JXzyMl7FBg1nP7PNziBExs1/z6fO6 6Z4fmHWFeOFqLwgma2h+nUvTa4ZRvy/XtSewvLvNBr/ejZom12eG89Ax3pkMuV5QYSLuNtQiwjUbv KixEBBG08Z6Q95CX+WYAU6YkfHube4gMo8LafukNMErMtp/xAQEjx2lSnHzeEegNjlKy5Yy4qQ9x6 jxVltM+pkM8A8OUrsmBlxJC5+PyXg5vKHzqpF++tStIScq4NgbWBfN0FT/JUNVf9Bj5ip/GUuj75C nXthmbAg==; Received: from foss.arm.com ([217.140.110.172]) by casper.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lJBq2-00FGNc-8Q for linux-arm-kernel@lists.infradead.org; Mon, 08 Mar 2021 09:06:27 +0000 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 56870D6E; Mon, 8 Mar 2021 01:06:01 -0800 (PST) Received: from [10.163.67.19] (unknown [10.163.67.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9391D3F70D; Mon, 8 Mar 2021 01:05:58 -0800 (PST) Subject: Re: [PATCH 1/2] arm64: mm: add missing P4D definitions and use them consistently To: Ard Biesheuvel , linux-arm-kernel@lists.infradead.org Cc: maz@kernel.org, catalin.marinas@arm.com, will@kernel.org, mark.rutland@arm.com, qperret@google.com, kernel-team@android.com References: <20210304171145.12281-1-ardb@kernel.org> <20210304171145.12281-2-ardb@kernel.org> From: Anshuman Khandual Message-ID: <2668867a-1b20-7a82-fba9-7a3a760c074c@arm.com> Date: Mon, 8 Mar 2021 14:36:34 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20210304171145.12281-2-ardb@kernel.org> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210308_090613_868916_B4362BC4 X-CRM114-Status: GOOD ( 20.90 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 3/4/21 10:41 PM, Ard Biesheuvel wrote: > Even though level 0, 1 and 2 descriptors share the same attribute > encodings, let's be a bit more consistent about using the right one at > the right level. So add new macros for level 0/P4D definitions, and > clean up some inconsistencies involving these macros. > > Signed-off-by: Ard Biesheuvel > --- > arch/arm64/include/asm/pgtable-hwdef.h | 9 +++++++++ > arch/arm64/mm/mmu.c | 6 +++--- > 2 files changed, 12 insertions(+), 3 deletions(-) > > diff --git a/arch/arm64/include/asm/pgtable-hwdef.h b/arch/arm64/include/asm/pgtable-hwdef.h > index 42442a0ae2ab..e64e77a345b2 100644 > --- a/arch/arm64/include/asm/pgtable-hwdef.h > +++ b/arch/arm64/include/asm/pgtable-hwdef.h > @@ -94,6 +94,15 @@ > /* > * Hardware page table definitions. > * > + * Level 0 descriptor (P4D). > + */ > +#define P4D_TYPE_TABLE (_AT(p4dval_t, 3) << 0) > +#define P4D_TABLE_BIT (_AT(p4dval_t, 1) << 1) > +#define P4D_TYPE_MASK (_AT(p4dval_t, 3) << 0) > +#define P4D_TYPE_SECT (_AT(p4dval_t, 1) << 0) > +#define P4D_SECT_RDONLY (_AT(p4dval_t, 1) << 7) /* AP[2] */ > + > +/* > * Level 1 descriptor (PUD). > */ > #define PUD_TYPE_TABLE (_AT(pudval_t, 3) << 0) > diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c > index 3802cfbdd20d..029091474042 100644 > --- a/arch/arm64/mm/mmu.c > +++ b/arch/arm64/mm/mmu.c > @@ -309,7 +309,7 @@ static void alloc_init_pud(pgd_t *pgdp, unsigned long addr, unsigned long end, > phys_addr_t pud_phys; > BUG_ON(!pgtable_alloc); > pud_phys = pgtable_alloc(PUD_SHIFT); > - __p4d_populate(p4dp, pud_phys, PUD_TYPE_TABLE); > + __p4d_populate(p4dp, pud_phys, P4D_TYPE_TABLE); > p4d = READ_ONCE(*p4dp); > } > BUG_ON(p4d_bad(p4d)); > @@ -1209,11 +1209,11 @@ void __init early_fixmap_init(void) > pudp = pud_offset_kimg(p4dp, addr); > } else { > if (p4d_none(p4d)) > - __p4d_populate(p4dp, __pa_symbol(bm_pud), PUD_TYPE_TABLE); > + __p4d_populate(p4dp, __pa_symbol(bm_pud), P4D_TYPE_TABLE); > pudp = fixmap_pud(addr); > } > if (pud_none(READ_ONCE(*pudp))) > - __pud_populate(pudp, __pa_symbol(bm_pmd), PMD_TYPE_TABLE); > + __pud_populate(pudp, __pa_symbol(bm_pmd), PUD_TYPE_TABLE); > pmdp = fixmap_pmd(addr); > __pmd_populate(pmdp, __pa_symbol(bm_pte), PMD_TYPE_TABLE); > > I guess there are still some more similar inconsistencies around. diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h index 3c6a7f5988b1..27cc643d0509 100644 --- a/arch/arm64/include/asm/pgalloc.h +++ b/arch/arm64/include/asm/pgalloc.h @@ -27,7 +27,7 @@ static inline void __pud_populate(pud_t *pudp, phys_addr_t pmdp, pudval_t prot) static inline void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmdp) { - __pud_populate(pudp, __pa(pmdp), PMD_TYPE_TABLE); + __pud_populate(pudp, __pa(pmdp), PUD_TYPE_TABLE); } #else static inline void __pud_populate(pud_t *pudp, phys_addr_t pmdp, pudval_t prot) @@ -45,7 +45,7 @@ static inline void __p4d_populate(p4d_t *p4dp, phys_addr_t pudp, p4dval_t prot) static inline void p4d_populate(struct mm_struct *mm, p4d_t *p4dp, pud_t *pudp) { - __p4d_populate(p4dp, __pa(pudp), PUD_TYPE_TABLE); + __p4d_populate(p4dp, __pa(pudp), P4D_TYPE_TABLE); } #else static inline void __p4d_populate(p4d_t *p4dp, phys_addr_t pudp, p4dval_t prot) diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c index d8e66c78440e..9fe40cbbd8c0 100644 --- a/arch/arm64/mm/kasan_init.c +++ b/arch/arm64/mm/kasan_init.c @@ -79,7 +79,7 @@ static pmd_t *__init kasan_pmd_offset(pud_t *pudp, unsigned long addr, int node, phys_addr_t pmd_phys = early ? __pa_symbol(kasan_early_shadow_pmd) : kasan_alloc_zeroed_page(node); - __pud_populate(pudp, pmd_phys, PMD_TYPE_TABLE); + __pud_populate(pudp, pmd_phys, PUD_TYPE_TABLE); } return early ? pmd_offset_kimg(pudp, addr) : pmd_offset(pudp, addr); @@ -92,7 +92,7 @@ static pud_t *__init kasan_pud_offset(p4d_t *p4dp, unsigned long addr, int node, phys_addr_t pud_phys = early ? __pa_symbol(kasan_early_shadow_pud) : kasan_alloc_zeroed_page(node); - __p4d_populate(p4dp, pud_phys, PMD_TYPE_TABLE); + __p4d_populate(p4dp, pud_phys, P4D_TYPE_TABLE); } return early ? pud_offset_kimg(p4dp, addr) : pud_offset(p4dp, addr); _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel