The patch titled Subject: maple_tree: fix mas_next() when already on the last node entry has been added to the -mm mm-unstable branch. Its filename is maple-tree-add-new-data-structure-fix-2.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/maple-tree-add-new-data-structure-fix-2.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm 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 via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Liam Howlett <liam.howlett@xxxxxxxxxx> Subject: maple_tree: fix mas_next() when already on the last node entry Date: Tue, 17 May 2022 14:59:22 +0000 It is possible to return the metadata as the next entry if the last node entry is already in the maple state and the limit is not reached. Check for this condition in mas_next_nentry() where the node end is returned. Link: https://lkml.kernel.org/r/20220517145913.3480729-1-Liam.Howlett@xxxxxxxxxx Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx> Reported-by: Sven Schnelle <svens@xxxxxxxxxxxxx> Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx> Reported-by: Heiko Carstens <hca@xxxxxxxxxxxxx> Tested-by: Sven Schnelle <svens@xxxxxxxxxxxxx> Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- lib/maple_tree.c | 3 +++ 1 file changed, 3 insertions(+) --- a/lib/maple_tree.c~maple-tree-add-new-data-structure-fix-2 +++ a/lib/maple_tree.c @@ -4547,6 +4547,9 @@ static inline void *mas_next_nentry(stru return NULL; count = ma_data_end(node, type, pivots, mas->max); + if (mas->offset > count) + return NULL; + while (mas->offset < count) { pivot = pivots[mas->offset]; entry = mas_slot(mas, slots, mas->offset); _ Patches currently in -mm which might be from liam.howlett@xxxxxxxxxx are maple-tree-add-new-data-structure-fix.patch maple-tree-add-new-data-structure-fix-2.patch lib-test_maple_tree-add-testing-for-maple-tree-fix.patch mm-start-tracking-vmas-with-maple-tree-fix-2.patch mm-remove-the-vma-linked-list-fix.patch