* Mike Rapoport <[email protected]> [260211 05:32]: > From: "Mike Rapoport (Microsoft)" <[email protected]> > > nommu architectures have empty_zero_page and define ZERO_PAGE() and > although they don't really use it to populate page tables, there is no > reason to hardwire !MMU implementation of is_zero_pfn() and my_zero_pfn() > to 0. > > Drop #ifdef CONFIG_MMU around implementations of is_zero_pfn() and > my_zero_pfn() and remove !MMU version. > > While on it, make zero_pfn __ro_after_init. > > Signed-off-by: Mike Rapoport (Microsoft) <[email protected]>
Acked-by: Liam R. Howlett <[email protected]> > --- > include/linux/pgtable.h | 14 +------------- > mm/memory.c | 13 ------------- > mm/mm_init.c | 10 ++++++++++ > 3 files changed, 11 insertions(+), 26 deletions(-) > > diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h > index 827dca25c0bc..08a88b0d56e5 100644 > --- a/include/linux/pgtable.h > +++ b/include/linux/pgtable.h > @@ -1882,7 +1882,6 @@ static inline void pfnmap_setup_cachemode_pfn(unsigned > long pfn, pgprot_t *prot) > pfnmap_setup_cachemode(pfn, PAGE_SIZE, prot); > } > > -#ifdef CONFIG_MMU > #ifdef __HAVE_COLOR_ZERO_PAGE > static inline int is_zero_pfn(unsigned long pfn) > { > @@ -1905,18 +1904,7 @@ static inline unsigned long my_zero_pfn(unsigned long > addr) > extern unsigned long zero_pfn; > return zero_pfn; > } > -#endif > -#else > -static inline int is_zero_pfn(unsigned long pfn) > -{ > - return 0; > -} > - > -static inline unsigned long my_zero_pfn(unsigned long addr) > -{ > - return 0; > -} > -#endif /* CONFIG_MMU */ > +#endif /* __HAVE_COLOR_ZERO_PAGE */ > > #ifdef CONFIG_MMU > > diff --git a/mm/memory.c b/mm/memory.c > index 187f16b7e996..51d2018a387a 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -162,21 +162,8 @@ static int __init disable_randmaps(char *s) > } > __setup("norandmaps", disable_randmaps); > > -unsigned long zero_pfn __read_mostly; > -EXPORT_SYMBOL(zero_pfn); > - > unsigned long highest_memmap_pfn __read_mostly; > > -/* > - * CONFIG_MMU architectures set up ZERO_PAGE in their paging_init() > - */ > -static int __init init_zero_pfn(void) > -{ > - zero_pfn = page_to_pfn(ZERO_PAGE(0)); > - return 0; > -} > -early_initcall(init_zero_pfn); > - > void mm_trace_rss_stat(struct mm_struct *mm, int member) > { > trace_rss_stat(mm, member); > diff --git a/mm/mm_init.c b/mm/mm_init.c > index 1a29a719af58..dcf9eff34f83 100644 > --- a/mm/mm_init.c > +++ b/mm/mm_init.c > @@ -53,6 +53,9 @@ EXPORT_SYMBOL(mem_map); > void *high_memory; > EXPORT_SYMBOL(high_memory); > > +unsigned long zero_pfn __ro_after_init; > +EXPORT_SYMBOL(zero_pfn); > + > #ifdef CONFIG_DEBUG_MEMORY_INIT > int __meminitdata mminit_loglevel; > > @@ -2667,6 +2670,13 @@ static void __init mem_init_print_info(void) > ); > } > > +static int __init init_zero_pfn(void) > +{ > + zero_pfn = page_to_pfn(ZERO_PAGE(0)); > + return 0; > +} > +early_initcall(init_zero_pfn); > + > void __init __weak arch_mm_preinit(void) > { > } > -- > 2.51.0 > _______________________________________________ linux-snps-arc mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-snps-arc
