On Fri, Sep 17, 2021 at 02:06:16PM +0200, David Hildenbrand wrote: > On 16.09.21 14:56, gregkh@xxxxxxxxxxxxxxxxxxx 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@xxxxxxxxxxxxxxx>. > > > > thanks, > > > > greg k-h > > > > ------------------ original commit in Linus's tree ------------------ > > > > From 7cf209ba8a86410939a24cb1aeb279479a7e0ca6 Mon Sep 17 00:00:00 2001 > > From: David Hildenbrand <david@xxxxxxxxxx> > > 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@xxxxxxxxxx > > > > 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@xxxxxxxxxx > > Fixes: e5e689302633 ("mm, memory_hotplug: display allowed zones in the preferred ordering") > > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> > > Reviewed-by: Pankaj Gupta <pankaj.gupta@xxxxxxxxx> > > Reviewed-by: Muchun Song <songmuchun@xxxxxxxxxxxxx> > > Reviewed-by: Oscar Salvador <osalvador@xxxxxxx> > > Cc: David Hildenbrand <david@xxxxxxxxxx> > > Cc: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> > > Cc: "Michael S. Tsirkin" <mst@xxxxxxxxxx> > > Cc: Jason Wang <jasowang@xxxxxxxxxx> > > Cc: Pankaj Gupta <pankaj.gupta.linux@xxxxxxxxx> > > Cc: Wei Yang <richard.weiyang@xxxxxxxxxxxxxxxxx> > > Cc: Michal Hocko <mhocko@xxxxxxxxxx> > > Cc: Dan Williams <dan.j.williams@xxxxxxxxx> > > Cc: Anshuman Khandual <anshuman.khandual@xxxxxxx> > > Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> > > Cc: Vlastimil Babka <vbabka@xxxxxxx> > > Cc: Mike Rapoport <rppt@xxxxxxxxxx> > > Cc: "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx> > > Cc: Len Brown <lenb@xxxxxxxxxx> > > Cc: Pavel Tatashin <pasha.tatashin@xxxxxxxxxx> > > Cc: Heiko Carstens <hca@xxxxxxxxxxxxx> > > Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > > Cc: Catalin Marinas <catalin.marinas@xxxxxxx> > > Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx > > Cc: Andy Lutomirski <luto@xxxxxxxxxx> > > Cc: "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxx> > > Cc: Anton Blanchard <anton@xxxxxxxxxx> > > Cc: Ard Biesheuvel <ardb@xxxxxxxxxx> > > Cc: Baoquan He <bhe@xxxxxxxxxx> > > Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> > > Cc: Borislav Petkov <bp@xxxxxxxxx> > > Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx> > > Cc: Christophe Leroy <christophe.leroy@xxxxxx> > > Cc: Dave Jiang <dave.jiang@xxxxxxxxx> > > Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> > > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > > Cc: Jia He <justin.he@xxxxxxx> > > Cc: Joe Perches <joe@xxxxxxxxxxx> > > Cc: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> > > Cc: Laurent Dufour <ldufour@xxxxxxxxxxxxx> > > Cc: Michel Lespinasse <michel@xxxxxxxxxxxxxx> > > Cc: Nathan Lynch <nathanl@xxxxxxxxxxxxx> > > Cc: Nicholas Piggin <npiggin@xxxxxxxxx> > > Cc: Paul Mackerras <paulus@xxxxxxxxx> > > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> > > Cc: Pierre Morel <pmorel@xxxxxxxxxxxxx> > > Cc: "Rafael J. Wysocki" <rafael.j.wysocki@xxxxxxxxx> > > Cc: Rich Felker <dalias@xxxxxxxx> > > Cc: Scott Cheloha <cheloha@xxxxxxxxxxxxx> > > Cc: Sergei Trofimovich <slyfox@xxxxxxxxxx> > > Cc: Thiago Jung Bauermann <bauerman@xxxxxxxxxxxxx> > > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > > Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx> > > Cc: Vishal Verma <vishal.l.verma@xxxxxxxxx> > > Cc: Will Deacon <will@xxxxxxxxxx> > > Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx> > > Cc: <stable@xxxxxxxxxxxxxxx> > > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > > Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > > > > 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. Please do, thanks!