Message ID | 20220703141203.147893-13-rppt@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | arch: make PxD_ORDER generically available | expand |
On Sun, Jul 03, 2022 at 05:12:01PM +0300, Mike Rapoport wrote: > +++ b/arch/loongarch/kernel/asm-offsets.c > @@ -190,7 +190,6 @@ void output_mm_defines(void) > #endif > DEFINE(_PTE_T_LOG2, PTE_T_LOG2); > BLANK(); > - DEFINE(_PGD_ORDER, PGD_ORDER); > BLANK(); > DEFINE(_PMD_SHIFT, PMD_SHIFT); > DEFINE(_PGDIR_SHIFT, PGDIR_SHIFT); Should probably also drop one of these BLANK() lines too?
On 2022/7/4 04:50, Matthew Wilcox wrote: > On Sun, Jul 03, 2022 at 05:12:01PM +0300, Mike Rapoport wrote: >> +++ b/arch/loongarch/kernel/asm-offsets.c >> @@ -190,7 +190,6 @@ void output_mm_defines(void) >> #endif >> DEFINE(_PTE_T_LOG2, PTE_T_LOG2); >> BLANK(); >> - DEFINE(_PGD_ORDER, PGD_ORDER); >> BLANK(); >> DEFINE(_PMD_SHIFT, PMD_SHIFT); >> DEFINE(_PGDIR_SHIFT, PGDIR_SHIFT); > Should probably also drop one of these BLANK() lines too? > Agreed; IMO the blank lines can and should be removed because the surrounding lines are also mm definitions.
On Mon, Jul 04, 2022 at 11:57:28AM +0800, WANG Xuerui wrote: > > On 2022/7/4 04:50, Matthew Wilcox wrote: > > On Sun, Jul 03, 2022 at 05:12:01PM +0300, Mike Rapoport wrote: > > > +++ b/arch/loongarch/kernel/asm-offsets.c > > > @@ -190,7 +190,6 @@ void output_mm_defines(void) > > > #endif > > > DEFINE(_PTE_T_LOG2, PTE_T_LOG2); > > > BLANK(); > > > - DEFINE(_PGD_ORDER, PGD_ORDER); > > > BLANK(); > > > DEFINE(_PMD_SHIFT, PMD_SHIFT); > > > DEFINE(_PGDIR_SHIFT, PGDIR_SHIFT); > > Should probably also drop one of these BLANK() lines too? > > > Agreed; IMO the blank lines can and should be removed because the > surrounding lines are also mm definitions. They are mm definitions, but still they are separated by blanks to have nice grouping in the generated asm-offsets.h. I suspect that there are more unused definitions in asm-offsets.c, worth taking a look.
diff --git a/arch/loongarch/include/asm/pgtable.h b/arch/loongarch/include/asm/pgtable.h index a97996fefaed..e03443abaf7d 100644 --- a/arch/loongarch/include/asm/pgtable.h +++ b/arch/loongarch/include/asm/pgtable.h @@ -21,8 +21,6 @@ #include <asm-generic/pgtable-nop4d.h> #endif -#define PGD_ORDER 0 - #if CONFIG_PGTABLE_LEVELS == 2 #define PGDIR_SHIFT (PAGE_SHIFT + (PAGE_SHIFT - 3)) #elif CONFIG_PGTABLE_LEVELS == 3 @@ -43,9 +41,9 @@ #define PGDIR_SIZE (1UL << PGDIR_SHIFT) #define PGDIR_MASK (~(PGDIR_SIZE-1)) -#define VA_BITS (PGDIR_SHIFT + (PAGE_SHIFT + PGD_ORDER - 3)) +#define VA_BITS (PGDIR_SHIFT + (PAGE_SHIFT - 3)) -#define PTRS_PER_PGD ((PAGE_SIZE << PGD_ORDER) >> 3) +#define PTRS_PER_PGD (PAGE_SIZE >> 3) #if CONFIG_PGTABLE_LEVELS > 3 #define PTRS_PER_PUD (PAGE_SIZE >> 3) #endif diff --git a/arch/loongarch/kernel/asm-offsets.c b/arch/loongarch/kernel/asm-offsets.c index aa4ef42d759f..72f431a7289d 100644 --- a/arch/loongarch/kernel/asm-offsets.c +++ b/arch/loongarch/kernel/asm-offsets.c @@ -190,7 +190,6 @@ void output_mm_defines(void) #endif DEFINE(_PTE_T_LOG2, PTE_T_LOG2); BLANK(); - DEFINE(_PGD_ORDER, PGD_ORDER); BLANK(); DEFINE(_PMD_SHIFT, PMD_SHIFT); DEFINE(_PGDIR_SHIFT, PGDIR_SHIFT); diff --git a/arch/loongarch/mm/pgtable.c b/arch/loongarch/mm/pgtable.c index 0569647152e9..ee179ccd3e3f 100644 --- a/arch/loongarch/mm/pgtable.c +++ b/arch/loongarch/mm/pgtable.c @@ -13,7 +13,7 @@ pgd_t *pgd_alloc(struct mm_struct *mm) { pgd_t *ret, *init; - ret = (pgd_t *) __get_free_pages(GFP_KERNEL, PGD_ORDER); + ret = (pgd_t *) __get_free_page(GFP_KERNEL); if (ret) { init = pgd_offset(&init_mm, 0UL); pgd_init((unsigned long)ret);