2020-02-20 06:11:15

by Alexandre Ghiti

[permalink] [raw]
Subject: [PATCH] riscv: Use p*d_leaf macros to define p*d_huge

The newly introduced p*d_leaf macros allow to check if an entry of the
page table map to a physical page instead of the next level. To avoid
duplication of code, use those macros to determine if a page table entry
points to a hugepage.

Suggested-by: Paul Walmsley <[email protected]>
Signed-off-by: Alexandre Ghiti <[email protected]>
---
arch/riscv/mm/hugetlbpage.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/riscv/mm/hugetlbpage.c b/arch/riscv/mm/hugetlbpage.c
index 0d4747e9d5b5..a6189ed36c5f 100644
--- a/arch/riscv/mm/hugetlbpage.c
+++ b/arch/riscv/mm/hugetlbpage.c
@@ -4,14 +4,12 @@

int pud_huge(pud_t pud)
{
- return pud_present(pud) &&
- (pud_val(pud) & (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC));
+ return pud_leaf(pud);
}

int pmd_huge(pmd_t pmd)
{
- return pmd_present(pmd) &&
- (pmd_val(pmd) & (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC));
+ return pmd_leaf(pmd);
}

static __init int setup_hugepagesz(char *opt)
--
2.20.1


2020-02-20 06:13:38

by Anup Patel

[permalink] [raw]
Subject: Re: [PATCH] riscv: Use p*d_leaf macros to define p*d_huge

On Thu, Feb 20, 2020 at 11:41 AM Alexandre Ghiti <[email protected]> wrote:
>
> The newly introduced p*d_leaf macros allow to check if an entry of the
> page table map to a physical page instead of the next level. To avoid
> duplication of code, use those macros to determine if a page table entry
> points to a hugepage.
>
> Suggested-by: Paul Walmsley <[email protected]>
> Signed-off-by: Alexandre Ghiti <[email protected]>
> ---
> arch/riscv/mm/hugetlbpage.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/riscv/mm/hugetlbpage.c b/arch/riscv/mm/hugetlbpage.c
> index 0d4747e9d5b5..a6189ed36c5f 100644
> --- a/arch/riscv/mm/hugetlbpage.c
> +++ b/arch/riscv/mm/hugetlbpage.c
> @@ -4,14 +4,12 @@
>
> int pud_huge(pud_t pud)
> {
> - return pud_present(pud) &&
> - (pud_val(pud) & (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC));
> + return pud_leaf(pud);
> }
>
> int pmd_huge(pmd_t pmd)
> {
> - return pmd_present(pmd) &&
> - (pmd_val(pmd) & (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC));
> + return pmd_leaf(pmd);
> }
>
> static __init int setup_hugepagesz(char *opt)
> --
> 2.20.1
>

Looks good to me.

Reviewed-by: Anup Patel <[email protected]>

Regards,
Anup

2020-03-05 21:16:19

by Palmer Dabbelt

[permalink] [raw]
Subject: Re: [PATCH] riscv: Use p*d_leaf macros to define p*d_huge

On Wed, 19 Feb 2020 22:10:23 PST (-0800), [email protected] wrote:
> The newly introduced p*d_leaf macros allow to check if an entry of the
> page table map to a physical page instead of the next level. To avoid
> duplication of code, use those macros to determine if a page table entry
> points to a hugepage.
>
> Suggested-by: Paul Walmsley <[email protected]>
> Signed-off-by: Alexandre Ghiti <[email protected]>
> ---
> arch/riscv/mm/hugetlbpage.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/riscv/mm/hugetlbpage.c b/arch/riscv/mm/hugetlbpage.c
> index 0d4747e9d5b5..a6189ed36c5f 100644
> --- a/arch/riscv/mm/hugetlbpage.c
> +++ b/arch/riscv/mm/hugetlbpage.c
> @@ -4,14 +4,12 @@
>
> int pud_huge(pud_t pud)
> {
> - return pud_present(pud) &&
> - (pud_val(pud) & (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC));
> + return pud_leaf(pud);
> }
>
> int pmd_huge(pmd_t pmd)
> {
> - return pmd_present(pmd) &&
> - (pmd_val(pmd) & (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC));
> + return pmd_leaf(pmd);
> }
>
> static __init int setup_hugepagesz(char *opt)

Thanks, this is on for-next.