Patch 1 adds the missing lock in memory hotplug operations, ensuring that the mem_hotplug_lock is held during critical operations like mhp_init_memmap_on_memory() and mhp_deinit_memmap_on_memory() Patch 2 deals with error handling in add_memory_resource() and considers the possibility of altmap support. This ensures proper deallocation of struct pages, aligning with the allocation strategy. Patch 3 relocates the vmem_altmap code to sparse-vmemmap.c, enabling the utilization of vmem_altmap_free() and vmem_altmap_offset() without the dependency on CONFIG_ZONE_DEVICE. v3: * added Acked-by in patch 3. * added cc: stable@xxxxxxxxxxxxxxx to commit messages (both patch 1 and patch 2), as reported by patch-bot. v2: * cc: stable@xxxxxxxxxxxxxxx * make vmem_altmap_offset()/vmem_altmap_free() inline. * added Acked-by for patch 1 and patch 2. v1: Changes since patch series "implement "memmap on memory" feature on s390": Feedback from David: Patch 1: * Fixed subject for memory hotplug lock. * Added locking comments before memory_block_online()/memory_block_offline(). Patch 2: * Fixed Fixes-by commit. lkp report: Patch 3: * when CONFIG_SPARSEMEM_VMEMMAP is disabled, resolve undefined reference to `vmem_altmap_offset' error. * Request for Reviewed-by once again due to the change in patch3. Thank you Sumanth Korikkar (3): mm/memory_hotplug: add missing mem_hotplug_lock mm/memory_hotplug: fix error handling in add_memory_resource() mm: use vmem_altmap code without CONFIG_ZONE_DEVICE drivers/base/memory.c | 18 +++++++++++++++--- include/linux/memremap.h | 12 ------------ include/linux/mm.h | 26 ++++++++++++++++++++++++++ mm/memory_hotplug.c | 15 +++++++-------- mm/memremap.c | 14 +------------- 5 files changed, 49 insertions(+), 36 deletions(-) -- 2.41.0