> -----Original Message----- > From: Dan Williams <dan.j.willi...@intel.com> > Sent: Wednesday, 1 April 2020 7:48 PM > To: Alastair D'Silva <alast...@d-silva.org> > Cc: Aneesh Kumar K . V <aneesh.ku...@linux.ibm.com>; Oliver O'Halloran > <ooh...@gmail.com>; Benjamin Herrenschmidt > <b...@kernel.crashing.org>; Paul Mackerras <pau...@samba.org>; Michael > Ellerman <m...@ellerman.id.au>; Frederic Barrat <fbar...@linux.ibm.com>; > Andrew Donnellan <a...@linux.ibm.com>; Arnd Bergmann > <a...@arndb.de>; Greg Kroah-Hartman <gre...@linuxfoundation.org>; > Vishal Verma <vishal.l.ve...@intel.com>; Dave Jiang > <dave.ji...@intel.com>; Ira Weiny <ira.we...@intel.com>; Andrew Morton > <a...@linux-foundation.org>; Mauro Carvalho Chehab > <mchehab+sams...@kernel.org>; David S. Miller <da...@davemloft.net>; > Rob Herring <r...@kernel.org>; Anton Blanchard <an...@ozlabs.org>; > Krzysztof Kozlowski <k...@kernel.org>; Mahesh Salgaonkar > <mah...@linux.vnet.ibm.com>; Madhavan Srinivasan > <ma...@linux.vnet.ibm.com>; Cédric Le Goater <c...@kaod.org>; Anju T > Sudhakar <a...@linux.vnet.ibm.com>; Hari Bathini > <hbath...@linux.ibm.com>; Thomas Gleixner <t...@linutronix.de>; Greg > Kurz <gr...@kaod.org>; Nicholas Piggin <npig...@gmail.com>; Masahiro > Yamada <yamada.masah...@socionext.com>; Alexey Kardashevskiy > <a...@ozlabs.ru>; Linux Kernel Mailing List <linux-ker...@vger.kernel.org>; > linuxppc-dev <linuxppc-dev@lists.ozlabs.org>; linux-nvdimm <linux- > nvd...@lists.01.org>; Linux MM <linux...@kvack.org> > 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 <alast...@d-silva.org> > 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 <alast...@d-silva.org> > > Reviewed-by: Andrew Donnellan <a...@linux.ibm.com> > > --- > > 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: alast...@d-silva.org blog: http://alastair.d-silva.org Twitter: @EvilDeece