On 6/5/26 23:19, Gregory Price wrote: > Existing callers of add_memory_driver_managed cannot select the > preferred online type (ZONE_NORMAL vs ZONE_MOVABLE), requiring it to > hot-add memory as offline blocks, and then follow up by onlining each > memory block individually. > > Most drivers prefer the system default, but the CXL driver wants to > plumb a preferred policy through the dax kmem driver. > > Refactor APIs to add a new interface which allows the dax kmem module > to select a preferred policy. > > Overriding the configured auto-online policy is only safe for known > in-tree modules, where we know the override reflects a different, > user-requested policy. We do not want arbitrary out-of-tree drivers > silently overriding the system-wide onlining policy, so restrict the > new interface to the kmem module using EXPORT_SYMBOL_FOR_MODULES() > rather than a plain EXPORT_SYMBOL_GPL(). Other in-tree modules (e.g. > cxl_core) can be added to the allowed list as the need arises. > > Refactor add_memory_driver_managed, extract __add_memory_driver_managed > - Add proper kernel-doc for add_memory_driver_managed while refactoring > - New helper accepts an explicit online_type. > - New helper validates online_type is between OFFLINE and ONLINE_MOVABLE > > Refactor: add_memory_resource, extract __add_memory_resource > - new helper accepts an explicit online_type > > Original APIs now explicitly pass the system-default to new helpers. > > No functional change for existing users. > > Cc: Oscar Salvador <[email protected]> > Cc: Andrew Morton <[email protected]> > Acked-by: David Hildenbrand (Arm) <[email protected]> > Signed-off-by: Gregory Price <[email protected]> > --- > include/linux/memory_hotplug.h | 3 ++ > mm/memory_hotplug.c | 61 +++++++++++++++++++++++++++++----- > 2 files changed, 56 insertions(+), 8 deletions(-) > > diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h > index f059025f8f8b..d3edeb80aadb 100644 > --- a/include/linux/memory_hotplug.h > +++ b/include/linux/memory_hotplug.h > @@ -294,6 +294,9 @@ extern int __add_memory(int nid, u64 start, u64 size, > mhp_t mhp_flags); > extern int add_memory(int nid, u64 start, u64 size, mhp_t mhp_flags); > extern int add_memory_resource(int nid, struct resource *resource, > mhp_t mhp_flags); > +int __add_memory_driver_managed(int nid, u64 start, u64 size, > + const char *resource_name, mhp_t mhp_flags, > + enum mmop online_type);
We prefer two-tab indent on second parameter line while touching code / adding new code. Same applies to the other instances below. Apart from that (still) LGTM. -- Cheers, David

