The patch titled Subject: drivers/base/memory: add memory block to memory group after registration succeeded has been added to the -mm tree. Its filename is drivers-base-memory-add-memory-block-to-memory-group-after-registration-succeeded.patch
This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/drivers-base-memory-add-memory-blo... and later at https://ozlabs.org/~akpm/mmotm/broken-out/drivers-base-memory-add-memory-blo...
Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated there every 3-4 working days
------------------------------------------------------ From: David Hildenbrand david@redhat.com Subject: drivers/base/memory: add memory block to memory group after registration succeeded
If register_memory() fails, we freed the memory block but already added the memory block to the group list, not good. Let's defer adding the block to the memory group to after registering the memory block device.
We do handle it properly during unregister_memory(), but that's not called when the registration fails.
Link: https://lkml.kernel.org/r/20220128144540.153902-1-david@redhat.com Fixes: 028fc57a1c36 ("drivers/base/memory: introduce "memory groups" to logically group memory blocks") Signed-off-by: David Hildenbrand david@redhat.com Reviewed-by: Oscar Salvador osalvador@suse.de Cc: Greg Kroah-Hartman gregkh@linuxfoundation.org Cc: "Rafael J. Wysocki" rafael@kernel.org Cc: Michal Hocko mhocko@suse.com Cc: stable@vger.kernel.org [5.15+] Signed-off-by: Andrew Morton akpm@linux-foundation.org ---
drivers/base/memory.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
--- a/drivers/base/memory.c~drivers-base-memory-add-memory-block-to-memory-group-after-registration-succeeded +++ a/drivers/base/memory.c @@ -663,14 +663,16 @@ static int init_memory_block(unsigned lo mem->nr_vmemmap_pages = nr_vmemmap_pages; INIT_LIST_HEAD(&mem->group_next);
+ ret = register_memory(mem); + if (ret) + return ret; + if (group) { mem->group = group; list_add(&mem->group_next, &group->memory_blocks); }
- ret = register_memory(mem); - - return ret; + return 0; }
static int add_memory_block(unsigned long base_section_nr) _
Patches currently in -mm which might be from david@redhat.com are
mm-optimize-do_wp_page-for-exclusive-pages-in-the-swapcache.patch mm-optimize-do_wp_page-for-fresh-pages-in-local-lru-pagevecs.patch mm-slightly-clarify-ksm-logic-in-do_swap_page.patch mm-streamline-cow-logic-in-do_swap_page.patch mm-huge_memory-streamline-cow-logic-in-do_huge_pmd_wp_page.patch mm-khugepaged-remove-reuse_swap_page-usage.patch mm-swapfile-remove-stale-reuse_swap_page.patch mm-huge_memory-remove-stale-page_trans_huge_mapcount.patch mm-huge_memory-remove-stale-locking-logic-from-__split_huge_pmd.patch drivers-base-memory-add-memory-block-to-memory-group-after-registration-succeeded.patch proc-vmcore-fix-possible-deadlock-on-concurrent-mmap-and-read.patch
linux-stable-mirror@lists.linaro.org