On Wed, Dec 15, 2021 at 1:27 PM Ting Liu <liuting.0x7c00@xxxxxxxxxxxxx> wrote: > > From: "liuting.0x7c00" <liuting.0x7c00@xxxxxxxxxxxxx> > > "page_idle_ops" as a global var, but its scope of use within this > document. So it should be static. > "page_ext_ops" is a var used in the kernel initial phase. And other > functions are aslo used in the kernel initial phase. So they should be > __init or __initdata to reclaim memory. > > Signed-off-by: liuting.0x7c00 <liuting.0x7c00@xxxxxxxxxxxxx> > --- > include/linux/page_idle.h | 1 - > mm/page_ext.c | 4 ++-- > mm/page_owner.c | 4 ++-- > 3 files changed, 4 insertions(+), 5 deletions(-) > > diff --git a/include/linux/page_idle.h b/include/linux/page_idle.h > index 83abf95e9fa7..4663dfed1293 100644 > --- a/include/linux/page_idle.h > +++ b/include/linux/page_idle.h > @@ -13,7 +13,6 @@ > * If there is not enough space to store Idle and Young bits in page flags, use > * page ext flags instead. > */ > -extern struct page_ext_operations page_idle_ops; > > static inline bool folio_test_young(struct folio *folio) > { > diff --git a/mm/page_ext.c b/mm/page_ext.c > index 6242afb24d84..2193e3f10e56 100644 > --- a/mm/page_ext.c > +++ b/mm/page_ext.c > @@ -63,12 +63,12 @@ static bool need_page_idle(void) Should need_page_idle be marked as __init? It is used in the initialization stage. > { > return true; > } > -struct page_ext_operations page_idle_ops = { > +static struct page_ext_operations page_idle_ops = { > .need = need_page_idle, > }; page_idle_ops is also used in the initialization stage. It also can be marked as __initdata. > #endif > > -static struct page_ext_operations *page_ext_ops[] = { > +static struct page_ext_operations *page_ext_ops[] __initdata = { > #ifdef CONFIG_PAGE_OWNER > &page_owner_ops, > #endif > diff --git a/mm/page_owner.c b/mm/page_owner.c > index 4f924957ce7a..5eea061bb1e5 100644 > --- a/mm/page_owner.c > +++ b/mm/page_owner.c > @@ -46,7 +46,7 @@ static int __init early_page_owner_param(char *buf) > } > early_param("page_owner", early_page_owner_param); > > -static bool need_page_owner(void) > +static __init bool need_page_owner(void) > { > return page_owner_enabled; > } > @@ -75,7 +75,7 @@ static noinline void register_early_stack(void) > early_handle = create_dummy_stack(); > } > > -static void init_page_owner(void) > +static __init void init_page_owner(void) > { > if (!page_owner_enabled) > return; > -- > 2.20.1 >