Re: [PATCH 2/8] mm/memory_hotplug: fix error handling in add_memory_resource()

From: Sumanth Korikkar
Date: Wed Nov 15 2023 - 08:45:53 EST


On Tue, Nov 14, 2023 at 07:36:20PM +0100, David Hildenbrand wrote:
> On 14.11.23 19:02, Sumanth Korikkar wrote:
> > In add_memory_resource(), creation of memory block devices occurs after
> > successful call to arch_add_memory(). However, creation of memory block
> > devices could fail. In that case, arch_remove_memory() is called to
> > perform necessary cleanup.
> >
> > Currently with or without altmap support, arch_remove_memory() is always
> > passed with altmap set to NULL during error handling. This leads to
> > freeing of struct pages using free_pages(), eventhough the allocation
> > might have been performed with altmap support via
> > altmap_alloc_block_buf().
> >
> > Fix the error handling by passing altmap in arch_remove_memory(). This
> > ensures the following:
> > * When altmap is disabled, deallocation of the struct pages array occurs
> > via free_pages().
> > * When altmap is enabled, deallocation occurs via vmem_altmap_free().
> >
> > Fixes: db051a0dac13 ("mm/memory_hotplug: create memory block devices after arch_add_memory()")
>
> That's the wrong commit. We didn't support memmap-on-memory back then.
>
> Likely it should be:
>
> Fixes: a08a2ae34613 ("mm,memory_hotplug: allocate memmap from the added
> memory range")
>
Ok, I will change it accordingly

Thanks
...
>
> Indeed; this will conflict with Vishals patches, ccing him.
>
> --
> Cheers,
>
> David / dhildenb
>