lmb: remove superfluous address overlap check from lmb_add_region_flags()
authorSughosh Ganu <sughosh.ganu@linaro.org>
Mon, 3 Mar 2025 13:32:29 +0000 (19:02 +0530)
committerTom Rini <trini@konsulko.com>
Tue, 18 Mar 2025 01:39:27 +0000 (19:39 -0600)
U-Boot allows re-use of already reserved memory through the
lmb_reserve() and lmb_alloc_addr() API's. This memory re-use is
allowed only when the flag of the existing reserved region and that of
the requested region is LMB_NONE. A check was put in the
lmb_add_region_flags() in commit 8b8b35a4f5e to handle the scenario
where an already reserved region was re-requested with region flag
other than LMB_NONE -- the function then returns -EEXIST in such a
scenario.

The lmb_reserve() function now does a check for a reservation request
with existing reserved regions, and returns -EEXIST in case of an
overlap but when the flag check fails. Remove this now redundant check
from lmb_add_region_flags().

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
lib/lmb.c

index 53af96f..9af942c 100644 (file)
--- a/lib/lmb.c
+++ b/lib/lmb.c
@@ -195,9 +195,6 @@ static long lmb_add_region_flags(struct alist *lmb_rgn_lst, phys_addr_t base,
                        coalesced++;
                        break;
                } else if (lmb_addrs_overlap(base, size, rgnbase, rgnsize)) {
-                       if (flags != LMB_NONE)
-                               return -EEXIST;
-
                        ret = lmb_resize_regions(lmb_rgn_lst, i, base, size);
                        if (ret < 0)
                                return -1;