diff mbox series

[v2] riscv: Use PMD_SIZE to repalce PTE_PARENT_SIZE

Message ID 1572920412-15661-1-git-send-email-zong.li@sifive.com (mailing list archive)
State New, archived
Headers show
Series [v2] riscv: Use PMD_SIZE to repalce PTE_PARENT_SIZE | expand

Commit Message

Zong Li Nov. 5, 2019, 2:20 a.m. UTC
The PMD_SIZE is equal to PGDIR_SIZE when __PAGETABLE_PMD_FOLDED is
defined.

Signed-off-by: Zong Li <zong.li@sifive.com>
---
 arch/riscv/mm/init.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

Comments

Anup Patel Nov. 5, 2019, 3:21 a.m. UTC | #1
On Tue, Nov 5, 2019 at 7:50 AM Zong Li <zong.li@sifive.com> wrote:
>
> The PMD_SIZE is equal to PGDIR_SIZE when __PAGETABLE_PMD_FOLDED is
> defined.
>
> Signed-off-by: Zong Li <zong.li@sifive.com>
> ---
>  arch/riscv/mm/init.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index 573463d..642b330 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -273,7 +273,6 @@ static void __init create_pmd_mapping(pmd_t *pmdp,
>  #define get_pgd_next_virt(__pa)        get_pmd_virt(__pa)
>  #define create_pgd_next_mapping(__nextp, __va, __pa, __sz, __prot)     \
>         create_pmd_mapping(__nextp, __va, __pa, __sz, __prot)
> -#define PTE_PARENT_SIZE                PMD_SIZE
>  #define fixmap_pgd_next                fixmap_pmd
>  #else
>  #define pgd_next_t             pte_t
> @@ -281,7 +280,6 @@ static void __init create_pmd_mapping(pmd_t *pmdp,
>  #define get_pgd_next_virt(__pa)        get_pte_virt(__pa)
>  #define create_pgd_next_mapping(__nextp, __va, __pa, __sz, __prot)     \
>         create_pte_mapping(__nextp, __va, __pa, __sz, __prot)
> -#define PTE_PARENT_SIZE                PGDIR_SIZE
>  #define fixmap_pgd_next                fixmap_pte
>  #endif
>
> @@ -316,10 +314,10 @@ static uintptr_t __init best_map_size(phys_addr_t base, phys_addr_t size)
>  {
>         uintptr_t map_size = PAGE_SIZE;
>
> -       /* Upgrade to PMD/PGDIR mappings whenever possible */
> -       if (!(base & (PTE_PARENT_SIZE - 1)) &&
> -           !(size & (PTE_PARENT_SIZE - 1)))
> -               map_size = PTE_PARENT_SIZE;
> +       /* Upgrade to PMD_SIZE mappings whenever possible */
> +       if (!(base & (PMD_SIZE - 1)) &&
> +           !(size & (PMD_SIZE - 1)))
> +               map_size = PMD_SIZE;
>
>         return map_size;
>  }
> --
> 2.7.4
>

LGTM.

Reviewed-by: Anup Patel <anup@brainfault.org>

Regards,
Anup
Paul Walmsley Nov. 6, 2019, 7 p.m. UTC | #2
On Mon, 4 Nov 2019, Zong Li wrote:

> The PMD_SIZE is equal to PGDIR_SIZE when __PAGETABLE_PMD_FOLDED is
> defined.
> 
> Signed-off-by: Zong Li <zong.li@sifive.com>

Thanks, queued for v5.5-rc1 with Anup's Reviewed-by:.


- Paul
Christoph Hellwig Nov. 8, 2019, 7:25 a.m. UTC | #3
On Mon, Nov 04, 2019 at 06:20:12PM -0800, Zong Li wrote:
>  	uintptr_t map_size = PAGE_SIZE;
>  
> -	/* Upgrade to PMD/PGDIR mappings whenever possible */
> -	if (!(base & (PTE_PARENT_SIZE - 1)) &&
> -	    !(size & (PTE_PARENT_SIZE - 1)))
> -		map_size = PTE_PARENT_SIZE;
> +	/* Upgrade to PMD_SIZE mappings whenever possible */
> +	if (!(base & (PMD_SIZE - 1)) &&
> +	    !(size & (PMD_SIZE - 1)))
> +		map_size = PMD_SIZE;

The check easily fits onto a single line now.  Also the map_size
variable is rather pointless.  Why not:

	if ((base & (PMD_SIZE - 1) || (size & (PMD_SIZE - 1)))
		return PAGE_SIZE;
	return PMD_SIZE;
Zong Li Nov. 8, 2019, 8:50 a.m. UTC | #4
On Fri, Nov 8, 2019 at 3:25 PM Christoph Hellwig <hch@infradead.org> wrote:
>
> On Mon, Nov 04, 2019 at 06:20:12PM -0800, Zong Li wrote:
> >       uintptr_t map_size = PAGE_SIZE;
> >
> > -     /* Upgrade to PMD/PGDIR mappings whenever possible */
> > -     if (!(base & (PTE_PARENT_SIZE - 1)) &&
> > -         !(size & (PTE_PARENT_SIZE - 1)))
> > -             map_size = PTE_PARENT_SIZE;
> > +     /* Upgrade to PMD_SIZE mappings whenever possible */
> > +     if (!(base & (PMD_SIZE - 1)) &&
> > +         !(size & (PMD_SIZE - 1)))
> > +             map_size = PMD_SIZE;
>
> The check easily fits onto a single line now.  Also the map_size
> variable is rather pointless.  Why not:
>
>         if ((base & (PMD_SIZE - 1) || (size & (PMD_SIZE - 1)))
>                 return PAGE_SIZE;
>         return PMD_SIZE;

Yes, Use positive representation is more clear to me. Change it in next version.
diff mbox series

Patch

diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index 573463d..642b330 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -273,7 +273,6 @@  static void __init create_pmd_mapping(pmd_t *pmdp,
 #define get_pgd_next_virt(__pa)	get_pmd_virt(__pa)
 #define create_pgd_next_mapping(__nextp, __va, __pa, __sz, __prot)	\
 	create_pmd_mapping(__nextp, __va, __pa, __sz, __prot)
-#define PTE_PARENT_SIZE		PMD_SIZE
 #define fixmap_pgd_next		fixmap_pmd
 #else
 #define pgd_next_t		pte_t
@@ -281,7 +280,6 @@  static void __init create_pmd_mapping(pmd_t *pmdp,
 #define get_pgd_next_virt(__pa)	get_pte_virt(__pa)
 #define create_pgd_next_mapping(__nextp, __va, __pa, __sz, __prot)	\
 	create_pte_mapping(__nextp, __va, __pa, __sz, __prot)
-#define PTE_PARENT_SIZE		PGDIR_SIZE
 #define fixmap_pgd_next		fixmap_pte
 #endif
 
@@ -316,10 +314,10 @@  static uintptr_t __init best_map_size(phys_addr_t base, phys_addr_t size)
 {
 	uintptr_t map_size = PAGE_SIZE;
 
-	/* Upgrade to PMD/PGDIR mappings whenever possible */
-	if (!(base & (PTE_PARENT_SIZE - 1)) &&
-	    !(size & (PTE_PARENT_SIZE - 1)))
-		map_size = PTE_PARENT_SIZE;
+	/* Upgrade to PMD_SIZE mappings whenever possible */
+	if (!(base & (PMD_SIZE - 1)) &&
+	    !(size & (PMD_SIZE - 1)))
+		map_size = PMD_SIZE;
 
 	return map_size;
 }