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 >