lkml.org 
[lkml]   [2020]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 02/25] mm/memory_hotplug: Allow check_hotplug_memory_addressable to be called from drivers
    Date
    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@d-silva.org>
    Reviewed-by: Andrew Donnellan <ajd@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 */
    +
    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
    \
     
     \ /
      Last update: 2020-03-29 04:29    [W:2.439 / U:0.344 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site