maple_tree: fix mas_empty_area_rev() lower bound validation
authorLiam Howlett <liam.howlett@oracle.com>
Wed, 11 Jan 2023 20:02:07 +0000 (20:02 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 1 Feb 2023 00:44:07 +0000 (16:44 -0800)
commit7327e8111adb315423035fb5233533016dfd3f2e
tree0276d59dc69b7d37bb6d3231481216bdcdfaa533
parent24b5308cf5ee9f52dd22f3af78a5b0cdc9d35e72
maple_tree: fix mas_empty_area_rev() lower bound validation

mas_empty_area_rev() was not correctly validating the start of a gap
against the lower limit.  This could lead to the range starting lower than
the requested minimum.

Fix the issue by better validating a gap once one is found.

This commit also adds tests to the maple tree test suite for this issue
and tests the mas_empty_area() function for similar bound checking.

Link: https://lkml.kernel.org/r/20230111200136.1851322-1-Liam.Howlett@oracle.com
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216911
Fixes: 54a611b60590 ("Maple Tree: add new data structure")
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Reported-by: <amanieu@gmail.com>
Link: https://lore.kernel.org/linux-mm/0b9f5425-08d4-8013-aa4c-e620c3b10bb2@leemhuis.info/
Tested-by: Holger Hoffsttte <holger@applied-asynchrony.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/maple_tree.c
lib/test_maple_tree.c