Re: [PATCH v1 1/4] mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()

From: Pankaj Gupta
Date: Wed Jul 14 2021 - 16:41:49 EST


> Checkpatch complained on a follow-up patch that we are using "unsigned"
> here, which defaults to "unsigned int" and checkpatch is correct.
>
> Use "unsigned long" instead, just as we do in other places when handling
> PFNs. This can bite us once we have physical addresses in the range of
> multiple TB.
>
> Fixes: e5e689302633 ("mm, memory_hotplug: display allowed zones in the preferred ordering")
> Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>
> ---
> include/linux/memory_hotplug.h | 4 ++--
> mm/memory_hotplug.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h
> index a7fd2c3ccb77..d01b504ce06f 100644
> --- a/include/linux/memory_hotplug.h
> +++ b/include/linux/memory_hotplug.h
> @@ -339,8 +339,8 @@ extern void sparse_remove_section(struct mem_section *ms,
> unsigned long map_offset, struct vmem_altmap *altmap);
> extern struct page *sparse_decode_mem_map(unsigned long coded_mem_map,
> unsigned long pnum);
> -extern struct zone *zone_for_pfn_range(int online_type, int nid, unsigned start_pfn,
> - unsigned long nr_pages);
> +extern struct zone *zone_for_pfn_range(int online_type, int nid,
> + unsigned long start_pfn, unsigned long nr_pages);
> extern int arch_create_linear_mapping(int nid, u64 start, u64 size,
> struct mhp_params *params);
> void arch_remove_linear_mapping(u64 start, u64 size);
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index 8cb75b26ea4f..93b3abaf9828 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -708,8 +708,8 @@ static inline struct zone *default_zone_for_pfn(int nid, unsigned long start_pfn
> return movable_node_enabled ? movable_zone : kernel_zone;
> }
>
> -struct zone *zone_for_pfn_range(int online_type, int nid, unsigned start_pfn,
> - unsigned long nr_pages)
> +struct zone *zone_for_pfn_range(int online_type, int nid,
> + unsigned long start_pfn, unsigned long nr_pages)
> {
> if (online_type == MMOP_ONLINE_KERNEL)
> return default_kernel_zone_for_pfn(nid, start_pfn, nr_pages);

Reviewed-by: Pankaj Gupta <pankaj.gupta@xxxxxxxxx>