> -----Original Message----- > From: Dan Williams <dan.j.williams@xxxxxxxxx> > Sent: Wednesday, 1 April 2020 7:48 PM > To: Alastair D'Silva <alastair@xxxxxxxxxxx> > Cc: Aneesh Kumar K . V <aneesh.kumar@xxxxxxxxxxxxx>; Oliver O'Halloran > <oohall@xxxxxxxxx>; Benjamin Herrenschmidt > <benh@xxxxxxxxxxxxxxxxxxx>; Paul Mackerras <paulus@xxxxxxxxx>; Michael > Ellerman <mpe@xxxxxxxxxxxxxx>; Frederic Barrat <fbarrat@xxxxxxxxxxxxx>; > Andrew Donnellan <ajd@xxxxxxxxxxxxx>; Arnd Bergmann > <arnd@xxxxxxxx>; Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>; > Vishal Verma <vishal.l.verma@xxxxxxxxx>; Dave Jiang > <dave.jiang@xxxxxxxxx>; Ira Weiny <ira.weiny@xxxxxxxxx>; Andrew Morton > <akpm@xxxxxxxxxxxxxxxxxxxx>; Mauro Carvalho Chehab > <mchehab+samsung@xxxxxxxxxx>; David S. Miller <davem@xxxxxxxxxxxxx>; > Rob Herring <robh@xxxxxxxxxx>; Anton Blanchard <anton@xxxxxxxxxx>; > Krzysztof Kozlowski <krzk@xxxxxxxxxx>; Mahesh Salgaonkar > <mahesh@xxxxxxxxxxxxxxxxxx>; Madhavan Srinivasan > <maddy@xxxxxxxxxxxxxxxxxx>; Cédric Le Goater <clg@xxxxxxxx>; Anju T > Sudhakar <anju@xxxxxxxxxxxxxxxxxx>; Hari Bathini > <hbathini@xxxxxxxxxxxxx>; Thomas Gleixner <tglx@xxxxxxxxxxxxx>; Greg > Kurz <groug@xxxxxxxx>; Nicholas Piggin <npiggin@xxxxxxxxx>; Masahiro > Yamada <yamada.masahiro@xxxxxxxxxxxxx>; Alexey Kardashevskiy > <aik@xxxxxxxxx>; Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>; > linuxppc-dev <linuxppc-dev@xxxxxxxxxxxxxxxx>; linux-nvdimm <linux- > nvdimm@xxxxxxxxxxxx>; Linux MM <linux-mm@xxxxxxxxx> > Subject: Re: [PATCH v4 02/25] mm/memory_hotplug: Allow > check_hotplug_memory_addressable to be called from drivers > > On Sun, Mar 29, 2020 at 10:23 PM Alastair D'Silva <alastair@xxxxxxxxxxx> > wrote: > > > > When setting up OpenCAPI connected persistent memory, the range check > > may not be performed until quite late (or perhaps not at all, if the > > user does not establish a DAX device). > > > > This patch makes the range check callable so we can perform the check > > while probing the OpenCAPI Persistent Memory device. > > > > Signed-off-by: Alastair D'Silva <alastair@xxxxxxxxxxx> > > Reviewed-by: Andrew Donnellan <ajd@xxxxxxxxxxxxx> > > --- > > include/linux/memory_hotplug.h | 5 +++++ > > mm/memory_hotplug.c | 4 ++-- > > 2 files changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/include/linux/memory_hotplug.h > > b/include/linux/memory_hotplug.h index f4d59155f3d4..9a19ae0d7e31 > > 100644 > > --- a/include/linux/memory_hotplug.h > > +++ b/include/linux/memory_hotplug.h > > @@ -337,6 +337,11 @@ static inline void __remove_memory(int nid, u64 > > start, u64 size) {} extern void set_zone_contiguous(struct zone > > *zone); extern void clear_zone_contiguous(struct zone *zone); > > > > +#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE > > +int check_hotplug_memory_addressable(unsigned long pfn, > > + unsigned long nr_pages); #endif > > +/* CONFIG_MEMORY_HOTPLUG_SPARSE */ > > Let's move this to include/linux/memory.h with the other > CONFIG_MEMORY_HOTPLUG_SPARSE declarations, and add a dummy > implementation for the CONFIG_MEMORY_HOTPLUG_SPARSE=n case. > > Also, this patch can be squashed with the next one, no need for it to be > stand alone. > Ok > > > + > > extern void __ref free_area_init_core_hotplug(int nid); extern int > > __add_memory(int nid, u64 start, u64 size); extern int add_memory(int > > nid, u64 start, u64 size); diff --git a/mm/memory_hotplug.c > > b/mm/memory_hotplug.c index 0a54ffac8c68..14945f033594 100644 > > --- a/mm/memory_hotplug.c > > +++ b/mm/memory_hotplug.c > > @@ -276,8 +276,8 @@ static int check_pfn_span(unsigned long pfn, > unsigned long nr_pages, > > return 0; > > } > > > > -static int check_hotplug_memory_addressable(unsigned long pfn, > > - unsigned long nr_pages) > > +int check_hotplug_memory_addressable(unsigned long pfn, > > + unsigned long nr_pages) > > { > > const u64 max_addr = PFN_PHYS(pfn + nr_pages) - 1; > > > > -- > > 2.24.1 > > -- Alastair D'Silva mob: 0423 762 819 skype: alastair_dsilva msn: alastair@xxxxxxxxxxx blog: http://alastair.d-silva.org Twitter: @EvilDeece