[RFC PATCH v6.6] maple_tree: Fix MA_STATE_PREALLOC flag in mas_preallocate()

Liam R. Howlett Liam.Howlett at oracle.com
Wed May 7 08:50:36 PDT 2025


* Liam R. Howlett <Liam.Howlett at oracle.com> [250428 21:48]:
> Temporarily clear the preallocation flag when explicitly requesting
> allocations.  Pre-existing allocations are already counted against the
> request through mas_node_count_gfp(), but the allocations will not
> happen if the MA_STATE_PREALLOC flag is set.  This flag is meant to
> avoid re-allocating in bulk allocation mode, and to detect issues with
> preallocation calculations.
> 
> The MA_STATE_PREALLOC flag should also always be set on zero allocations
> so that detection of underflow allocations will print a WARN_ON() during
> consumption.
> 
> User visible effect of this flaw is a WARN_ON() followed by a null
> pointer dereference when subsequent requests for larger number of nodes
> is ignored, such as the vma merge retry in mmap_region() caused by
> drivers altering the vma flags.
> 
> Reported-by: Zhaoyang Huang <zhaoyang.huang at unisoc.com>
> Reported-by: Hailong Liu <hailong.liu at oppo.com>
> Fixes: 54a611b605901 ("Maple Tree: add new data structure")
> Link: https://lore.kernel.org/all/1652f7eb-a51b-4fee-8058-c73af63bacd1@oppo.com/
> Link: https://lore.kernel.org/all/20250428184058.1416274-1-Liam.Howlett@oracle.com/
> Cc: Lorenzo Stoakes <lorenzo.stoakes at oracle.com>
> Cc: Suren Baghdasaryan <surenb at google.com>
> Cc: Hailong Liu <hailong.liu at oppo.com>
> Cc: zhangpeng.00 at bytedance.com <zhangpeng.00 at bytedance.com>
> Cc: Steve Kang <Steve.Kang at unisoc.com>
> Cc: Matthew Wilcox <willy at infradead.org>
> Cc: Sidhartha Kumar <sidhartha.kumar at oracle.com>
> Signed-off-by: Liam R. Howlett <Liam.Howlett at oracle.com>

...

I have a version of this for mm-new and I'd like to send it out.  Once
this is upstream, it will be backported to the stable kernels with
something that looks a lot like what I sent out here.

Did this fix the issue in the longer running tests?

Thanks,
Liam



More information about the maple-tree mailing list