Re: [PATCH] mm: move function âis_pageblock_removable_nolockâ inside blockers

From: Michal Hocko
Date: Wed May 09 2018 - 03:44:09 EST


On Sat 05-05-18 22:11:06, Mathieu Malaterre wrote:
> Function âis_pageblock_removable_nolockâ is not used unless
> CONFIG_MEMORY_HOTREMOVE is activated. Move it in between #ifdef sentinel to
> match prototype in <linux/memory_hotplug.h>. Silence gcc warning (W=1):
>
> mm/page_alloc.c:7704:6: warning: no previous prototype for âis_pageblock_removable_nolockâ [-Wmissing-prototypes]

Could you move is_pageblock_removable_nolock to mm/memory_hotplug.c
and make it static instead? There is only one caller
is_mem_section_removable so there shouldn't be any real reason to have
it extern and add more ifdefs.

> Signed-off-by: Mathieu Malaterre <malat@xxxxxxxxxx>
> ---
> mm/page_alloc.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 905db9d7962f..94ca579938e5 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -7701,6 +7701,7 @@ bool has_unmovable_pages(struct zone *zone, struct page *page, int count,
> return false;
> }
>
> +#ifdef CONFIG_MEMORY_HOTREMOVE
> bool is_pageblock_removable_nolock(struct page *page)
> {
> struct zone *zone;
> @@ -7723,6 +7724,7 @@ bool is_pageblock_removable_nolock(struct page *page)
>
> return !has_unmovable_pages(zone, page, 0, MIGRATE_MOVABLE, true);
> }
> +#endif
>
> #if (defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || defined(CONFIG_CMA)
>
> --
> 2.11.0
>

--
Michal Hocko
SUSE Labs