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=-6.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 4DEA8CA9EAF for ; Thu, 24 Oct 2019 13:09:18 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id ECD2F20659 for ; Thu, 24 Oct 2019 13:09:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ouz4PbLg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ECD2F20659 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 9B4426B0006; Thu, 24 Oct 2019 09:09:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 964606B0008; Thu, 24 Oct 2019 09:09:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8523D6B000A; Thu, 24 Oct 2019 09:09:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0074.hostedemail.com [216.40.44.74]) by kanga.kvack.org (Postfix) with ESMTP id 5FC2E6B0006 for ; Thu, 24 Oct 2019 09:09:17 -0400 (EDT) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with SMTP id CFAC4180CDD18 for ; Thu, 24 Oct 2019 13:09:16 +0000 (UTC) X-FDA: 76078709112.13.verse38_50e7b83ff5c3c X-HE-Tag: verse38_50e7b83ff5c3c X-Filterd-Recvd-Size: 6038 Received: from mail-lf1-f68.google.com (mail-lf1-f68.google.com [209.85.167.68]) by imf06.hostedemail.com (Postfix) with ESMTP for ; Thu, 24 Oct 2019 13:09:15 +0000 (UTC) Received: by mail-lf1-f68.google.com with SMTP id q28so15854079lfa.5 for ; Thu, 24 Oct 2019 06:09:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=UcBPcAPMYq3ql7XZolJWjM40KQcfZi7nEuSg4RQDIuc=; b=Ouz4PbLg3SeM/SRzKwbpYWtMvLrdJ6nOXnWQL0oUQhHWeGv2Mw58FeTuy/DJXAzYZ3 +CGlc91Gh/uDfemb2YnBDYRG4mREUzJ26nWAuYs1id0BVvBF4PKggM4GaRcnWpVoGpVT 41TqNQx9bbMIK7CxLzbB9PwKXWq4IIEx/oy8U3BBUTeO0s+Tw+7S7QsaJfQfcpzbSC8N PSSgzAXE5chQDW2RsAPMrmAsBSXpM/9+FyW7vIYG9iQXXiUTn+9EzpNJ0f3jbj/dZk51 h+c6HNv46YaTCOw1eXDjFT1HqVBIGHAtTqYVqJTmv/Gk2l2Ao9PUPU7+S4jvenhE/Tzg 8xUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=UcBPcAPMYq3ql7XZolJWjM40KQcfZi7nEuSg4RQDIuc=; b=e9bJHNE3ZZuPc9l7iJZ33i+y4ePl8vxFN6MXNfSKb0mniAt5N/cmdVCIaU5KeJTKAN zuOs9zELXLpQJYWcPyee41P71GUiApB0jcmBByX66S+Z7CBfmG1cCPn90sMWHQbBbxp5 mBsoX3CHs/Wfc+mIBpqy7H6tusA4k/DlVYqkaIcP/O/EXU5eKYjpVrJUZu6P1QTQj0vL F/DgQAXSGphQTH9vMaX2gxGBkC3qyyt+33VkGNPmPCrqjvuru9V+ZcbyQb2z/aN2EINe UQS1KgrjL/00LPCEykTfSRO/K5WytogYG4WcBlKN8m2tMg1/ej/l0DSSL7+1BsfXWN3F tdoA== X-Gm-Message-State: APjAAAUH9OyRGOHuWmeHaXuzARqyOL0qf6+7ssiccLtkMG5F/325wi8u ie1BEccMc6XHjmCtvRl2MimEWE9sr1ur3oEAHhY= X-Google-Smtp-Source: APXvYqw7AnXk46JAKtrvbMSXREq+EburX1Xswn3NrPh+gx0SKQjxDmlCifTtUoCo+f45tE5PxMdIHbGV2ouTvaD2BAI= X-Received: by 2002:ac2:4345:: with SMTP id o5mr11786215lfl.60.1571922554635; Thu, 24 Oct 2019 06:09:14 -0700 (PDT) MIME-Version: 1.0 References: <20191024093716.49420-1-steven.price@arm.com> <20191024093716.49420-8-steven.price@arm.com> In-Reply-To: <20191024093716.49420-8-steven.price@arm.com> From: Zong Li Date: Thu, 24 Oct 2019 21:09:03 +0800 Message-ID: Subject: Re: [PATCH v13 07/22] riscv: mm: Add p?d_leaf() definitions To: Steven Price Cc: linux-mm@kvack.org, Mark Rutland , Peter Zijlstra , Catalin Marinas , Dave Hansen , "H. Peter Anvin" , linux-riscv@lists.infradead.org, Will Deacon , "Liang, Kan" , Alexandre Ghiti , x86@kernel.org, Ingo Molnar , Palmer Dabbelt , Albert Ou , Arnd Bergmann , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Borislav Petkov , Andy Lutomirski , Paul Walmsley , Thomas Gleixner , linux-arm-kernel@lists.infradead.org, Ard Biesheuvel , Linux Kernel Mailing List , James Morse , Andrew Morton Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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: Steven Price =E6=96=BC 2019=E5=B9=B410=E6=9C=8824=E6= =97=A5 =E9=80=B1=E5=9B=9B =E4=B8=8B=E5=8D=885:40=E5=AF=AB=E9=81=93=EF=BC=9A > > walk_page_range() is going to be allowed to walk page tables other than > those of user space. For this it needs to know when it has reached a > 'leaf' entry in the page tables. This information is provided by the > p?d_leaf() functions/macros. > > For riscv a page is a leaf page when it has a read, write or execute bit > set on it. > > CC: Palmer Dabbelt > CC: Albert Ou > CC: linux-riscv@lists.infradead.org > Reviewed-by: Alexandre Ghiti > Acked-by: Paul Walmsley # for arch/riscv > Signed-off-by: Steven Price > --- > arch/riscv/include/asm/pgtable-64.h | 7 +++++++ > arch/riscv/include/asm/pgtable.h | 7 +++++++ > 2 files changed, 14 insertions(+) > > diff --git a/arch/riscv/include/asm/pgtable-64.h b/arch/riscv/include/asm= /pgtable-64.h > index 74630989006d..4c4d2c65ba6c 100644 > --- a/arch/riscv/include/asm/pgtable-64.h > +++ b/arch/riscv/include/asm/pgtable-64.h > @@ -43,6 +43,13 @@ static inline int pud_bad(pud_t pud) > return !pud_present(pud); > } > > +#define pud_leaf pud_leaf > +static inline int pud_leaf(pud_t pud) > +{ > + return pud_present(pud) && > + (pud_val(pud) & (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC)); > +} > + > static inline void set_pud(pud_t *pudp, pud_t pud) > { > *pudp =3D pud; > diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pg= table.h > index 7255f2d8395b..3aa972dda75a 100644 > --- a/arch/riscv/include/asm/pgtable.h > +++ b/arch/riscv/include/asm/pgtable.h > @@ -130,6 +130,13 @@ static inline int pmd_bad(pmd_t pmd) > return !pmd_present(pmd); > } > > +#define pmd_leaf pmd_leaf > +static inline int pmd_leaf(pmd_t pmd) > +{ > + return pmd_present(pmd) && > + (pmd_val(pmd) & (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC)); > +} > + > static inline void set_pmd(pmd_t *pmdp, pmd_t pmd) > { > *pmdp =3D pmd; > -- > 2.20.1 > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv It's good to me. Reviewed-by: Zong Li