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=-14.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 5BBA6C433DB for ; Mon, 8 Mar 2021 09:08:57 +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 F3155651BC for ; Mon, 8 Mar 2021 09:08:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F3155651BC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Vrykol/xVuda7J5fCL7BeXUDKxIL2SRhYPXuoMdLkiM=; b=W2Yb3IGyZsTDTnhaQU0+vBWuR cMwa1jX1U+n2YlKw3btbkeFyzdqCMSE/GK4LCHNAXRpF/rqT0JQnVNemKRaD9TFJM5CQQ6z/D6FtD hYv482kX5rV6GZEClGJBim0G1jdRsQyREci0QisDcm+/OTWRbN9SF8YipuJf36uLKeRtZ0Eu7IHAw t62bbebQOcSrkxZPshcuZved3wcWJVLYWHMjjWRqkqc6Vap3gbWVXeroLuLtLz6SyxX2gRMMFPoRH adT97tOYPBmNaO5DnRbN216dBSzD5hHzjA2sS/IdVDNtsm2iuss/Ft+8KKC6gmXZ69JGLzfAr8qpF s0odJHI9g==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lJBrE-00G5mV-Ah; Mon, 08 Mar 2021 09:07:20 +0000 Received: from mail.kernel.org ([198.145.29.99]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lJBr8-00G5jH-CX for linux-arm-kernel@lists.infradead.org; Mon, 08 Mar 2021 09:07:16 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7E349651C5 for ; Mon, 8 Mar 2021 09:07:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1615194432; bh=XLmNnpsrbLSoUfhlQ1vEnsv4QiUKrVqOrv2QspX79kk=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=B/YA3y5WUoMrfOq4hCsdw4OATVTKxs30Tr9tLtyCAuhvBMvfO2HcJYUuQo288Lg9Z aVxBTzMc5s6LDZ/pJgWYd+T4W+NaUZ1Heua12UnETmvFQp+OOgG15lq0M/2L0Xp2pb GW/Hzn3UtZZSqgSm072IvLluY/yKEew+MG10BUZB2JyezKz97jfprefeqwoqSQb+Ao muNjm6E2+f36r6XQuGd15VUKrupHIwDxYhFgSD7hmugKIUuzn4oJPejXHVvz8cKksK G9A5P66iNVwjtgQ0KadqVNR6Bo9JDQgRraYrNGqC9OYyQ7ayqmCBqd/hcDmV/Rvluw c6UfaLClaH5Yg== Received: by mail-oi1-f176.google.com with SMTP id x135so5760741oia.9 for ; Mon, 08 Mar 2021 01:07:12 -0800 (PST) X-Gm-Message-State: AOAM530hEH39mmdBhjuhRYqle4R1DmZpFmrjslw0/bsPBIjZHc2n1OHS tEzeFx7u6qcdavgNENy9PJOCgOfHvf3ts/PKdAI= X-Google-Smtp-Source: ABdhPJyDGWAEQfod9qZK9+45F1jmeXs7YXvgzcZj4vSdAzhoX3etrOEVN/ceqSM8LXAYNsfMH9LN+THlBlxwcFtUqwM= X-Received: by 2002:aca:538c:: with SMTP id h134mr16301767oib.174.1615194431761; Mon, 08 Mar 2021 01:07:11 -0800 (PST) MIME-Version: 1.0 References: <20210304171145.12281-1-ardb@kernel.org> <20210304171145.12281-2-ardb@kernel.org> <2668867a-1b20-7a82-fba9-7a3a760c074c@arm.com> In-Reply-To: <2668867a-1b20-7a82-fba9-7a3a760c074c@arm.com> From: Ard Biesheuvel Date: Mon, 8 Mar 2021 10:07:00 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/2] arm64: mm: add missing P4D definitions and use them consistently To: Anshuman Khandual Cc: Linux ARM , Marc Zyngier , Catalin Marinas , Will Deacon , Mark Rutland , Quentin Perret , Android Kernel Team X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210308_090715_003870_EEB8FFA3 X-CRM114-Status: GOOD ( 24.34 ) 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 Mon, 8 Mar 2021 at 10:06, Anshuman Khandual wrote: > > > > 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. > Indeed - I will fix those as well in v2. Thanks, Ard. > 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