On 16.09.21 14:56, gregkh(a)linuxfoundation.org wrote:
>
> The patch below does not apply to the 4.14-stable tree.
> If someone wants it applied there, or to any other stable or longterm
> tree, then please email the backport, including the original git commit
> id to <stable(a)vger.kernel.org>.
>
> thanks,
>
> greg k-h
>
> ------------------ original commit in Linus's tree ------------------
>
> From 7cf209ba8a86410939a24cb1aeb279479a7e0ca6 Mon Sep 17 00:00:00 2001
> From: David Hildenbrand <david(a)redhat.com>
> Date: Tue, 7 Sep 2021 19:54:59 -0700
> Subject: [PATCH] mm/memory_hotplug: use "unsigned long" for PFN in
> zone_for_pfn_range()
>
> Patch series "mm/memory_hotplug: preparatory patches for new online policy and memory"
>
> These are all cleanups and one fix previously sent as part of [1]:
> [PATCH v1 00/12] mm/memory_hotplug: "auto-movable" online policy and memory
> groups.
>
> These patches make sense even without the other series, therefore I pulled
> them out to make the other series easier to digest.
>
> [1] https://lkml.kernel.org/r/20210607195430.48228-1-david@redhat.com
>
> This patch (of 4):
>
> Checkpatch complained on a follow-up patch that we are using "unsigned"
> here, which defaults to "unsigned int" and checkpatch is correct.
>
> As we will search for a fitting zone using the wrong pfn, we might end
> up onlining memory to one of the special kernel zones, such as ZONE_DMA,
> which can end badly as the onlined memory does not satisfy properties of
> these zones.
>
> 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.
>
> Link: https://lkml.kernel.org/r/20210712124052.26491-2-david@redhat.com
> Fixes: e5e689302633 ("mm, memory_hotplug: display allowed zones in the preferred ordering")
> Signed-off-by: David Hildenbrand <david(a)redhat.com>
> Reviewed-by: Pankaj Gupta <pankaj.gupta(a)ionos.com>
> Reviewed-by: Muchun Song <songmuchun(a)bytedance.com>
> Reviewed-by: Oscar Salvador <osalvador(a)suse.de>
> Cc: David Hildenbrand <david(a)redhat.com>
> Cc: Vitaly Kuznetsov <vkuznets(a)redhat.com>
> Cc: "Michael S. Tsirkin" <mst(a)redhat.com>
> Cc: Jason Wang <jasowang(a)redhat.com>
> Cc: Pankaj Gupta <pankaj.gupta.linux(a)gmail.com>
> Cc: Wei Yang <richard.weiyang(a)linux.alibaba.com>
> Cc: Michal Hocko <mhocko(a)kernel.org>
> Cc: Dan Williams <dan.j.williams(a)intel.com>
> Cc: Anshuman Khandual <anshuman.khandual(a)arm.com>
> Cc: Dave Hansen <dave.hansen(a)linux.intel.com>
> Cc: Vlastimil Babka <vbabka(a)suse.cz>
> Cc: Mike Rapoport <rppt(a)kernel.org>
> Cc: "Rafael J. Wysocki" <rjw(a)rjwysocki.net>
> Cc: Len Brown <lenb(a)kernel.org>
> Cc: Pavel Tatashin <pasha.tatashin(a)soleen.com>
> Cc: Heiko Carstens <hca(a)linux.ibm.com>
> Cc: Michael Ellerman <mpe(a)ellerman.id.au>
> Cc: Catalin Marinas <catalin.marinas(a)arm.com>
> Cc: virtualization(a)lists.linux-foundation.org
> Cc: Andy Lutomirski <luto(a)kernel.org>
> Cc: "Aneesh Kumar K.V" <aneesh.kumar(a)linux.ibm.com>
> Cc: Anton Blanchard <anton(a)ozlabs.org>
> Cc: Ard Biesheuvel <ardb(a)kernel.org>
> Cc: Baoquan He <bhe(a)redhat.com>
> Cc: Benjamin Herrenschmidt <benh(a)kernel.crashing.org>
> Cc: Borislav Petkov <bp(a)alien8.de>
> Cc: Christian Borntraeger <borntraeger(a)de.ibm.com>
> Cc: Christophe Leroy <christophe.leroy(a)c-s.fr>
> Cc: Dave Jiang <dave.jiang(a)intel.com>
> Cc: "H. Peter Anvin" <hpa(a)zytor.com>
> Cc: Ingo Molnar <mingo(a)redhat.com>
> Cc: Jia He <justin.he(a)arm.com>
> Cc: Joe Perches <joe(a)perches.com>
> Cc: Kefeng Wang <wangkefeng.wang(a)huawei.com>
> Cc: Laurent Dufour <ldufour(a)linux.ibm.com>
> Cc: Michel Lespinasse <michel(a)lespinasse.org>
> Cc: Nathan Lynch <nathanl(a)linux.ibm.com>
> Cc: Nicholas Piggin <npiggin(a)gmail.com>
> Cc: Paul Mackerras <paulus(a)samba.org>
> Cc: Peter Zijlstra <peterz(a)infradead.org>
> Cc: Pierre Morel <pmorel(a)linux.ibm.com>
> Cc: "Rafael J. Wysocki" <rafael.j.wysocki(a)intel.com>
> Cc: Rich Felker <dalias(a)libc.org>
> Cc: Scott Cheloha <cheloha(a)linux.ibm.com>
> Cc: Sergei Trofimovich <slyfox(a)gentoo.org>
> Cc: Thiago Jung Bauermann <bauerman(a)linux.ibm.com>
> Cc: Thomas Gleixner <tglx(a)linutronix.de>
> Cc: Vasily Gorbik <gor(a)linux.ibm.com>
> Cc: Vishal Verma <vishal.l.verma(a)intel.com>
> Cc: Will Deacon <will(a)kernel.org>
> Cc: Yoshinori Sato <ysato(a)users.sourceforge.jp>
> Cc: <stable(a)vger.kernel.org>
> Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
> Signed-off-by: Linus Torvalds <torvalds(a)linux-foundation.org>
>
> 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 f829805fe1ca..fa349acb8810 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);
>
AFAIKS, there are only contextual differences and they are pretty easy
to sort out. @Greg, I can send a backport if it helps.
--
Thanks,
David / dhildenb