Re: [PATCH v7 06/10] mm/memory_hotplug: add offline_and_remove_memory_ranges()
[email protected] Sun, 12 Jul 2026 15:53:59 +0000
| Newsgroups | dev.linux.lists.nvdimm,org.kernel.vger.linux-cxl |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] offline_and_remove_memory_ranges() silently discards errors from try_remove_memory(), falsely returning success and breaking all-or-nothing rollback semantics. -- --- Patch [6]: [PATCH v7 06/10] mm/memory_hotplug: add offline_and_remove_memory_ranges() --- commit 5dfae7d4a23ca17c8437f8cb92a4cc3f409e0c37 Author: Gregory Price <[email protected]> mm/memory_hotplug: add offline_and_remove_memory_ranges() This commit introduces offline_and_remove_memory_ranges() to handle the offlining and removal of multiple memory ranges as a single atomic operation under the device hotplug lock. It offlines all blocks first, reverting on failure, before attempting to remove them. > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index a66346def504b..e33e0f4ae5da1 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c [ ... ] > +int offline_and_remove_memory_ranges(const struct range *ranges, > + unsigned int nr_ranges) > +{ [ ... ] > + /* Phase 2: Remove. This should never fail holding the hotplug lock */ > + for (i = 0; i < nr_ranges; i++) > + WARN_ON_ONCE(try_remove_memory(ranges[i].start, > + range_len(&ranges[i]))); [Severity: High] If try_remove_memory() does happen to fail during Phase 2, does wrapping it in WARN_ON_ONCE() silently discard the error code? Since rc is not updated here, offline_and_remove_memory_ranges() would return 0 (success) to the caller even if the removal failed. Could this mislead the calling driver into freeing its device structures, leaving the kernel's memory subsystem with stale references to unremoved memory blocks? > + > +out_unlock: > unlock_device_hotplug(); > > kfree(online_types); > return rc; > } > +EXPORT_SYMBOL_GPL(offline_and_remove_memory_ranges); -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=6