u-boot/test
Ilias Apalodimas 1d9aa4a283 lmb: Fix the allocation of overlapping memory areas with !LMB_NONE
At the moment the LMB allocator will return 'success' immediately on two
consecutive allocations if the second one is smaller and the flags match
without resizing the reserved area.

This is problematic for two reasons, first of all the new updated
allocation won't update the size and we end up holding more memory than
needed, but most importantly it breaks the EFI SCT tests since EFI
now allocates via LMB.

More specifically when EFI requests a specific address twice with the
EFI_ALLOCATE_ADDRESS flag set, the first allocation will succeed and
update the EFI memory map. Due to the LMB behavior the second allocation
will also succeed but the address ranges are already in the EFI memory
map due the first allocation. EFI will then fail to update the memory map,
returning EFI_OUT_OF_RESOURCES instead of EFI_NOT_FOUND which break EFI
conformance.

So let's remove the fast check with is problematic anyway and leave LMB
resize and calculate address properly. LMB will now
- try to resize the reservations for LMB_NONE
- return -1 if the memory is not LMB_NONE and already reserved

The LMB code needs some cleanup in that part, but since we are close to
2025.01 do the easy fix and plan to refactor it later.
Also update the dm tests with the new behavior.

Fixes: commit 22f2c9ed9f ("efi: memory: use the lmb API's for allocating and freeing memory")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-05 09:01:44 +02:00
..
boot test: boot: Set DM|SCAN_FDT flags for bootmeth_{cros,android} 2024-11-22 14:37:21 -06:00
cmd test/cmd/wget.c: move net_test_wget() to the cmd test suite 2024-11-29 07:51:57 -06:00
common test: print_printf() must check availability of %ls 2024-11-14 18:14:06 -06:00
dm dm: Add dm_remove_devices_active() for ordered device removal 2024-11-24 15:41:28 -06:00
env test: Rename UTF_CONSOLE_REC to UTF_CONSOLE 2024-08-26 18:51:49 -06:00
fs test: fs: fs-test: Move the tests to use sha256sum 2024-01-11 21:19:25 -05:00
fuzz global: Rename SPL_ to XPL_ 2024-10-11 11:44:48 -06:00
hush test/hush: Add CONFIG_CONSOLE_RECORD where required 2024-10-29 16:17:47 -06:00
image spl: Create a function to init spl_load_info 2024-08-23 15:58:42 -06:00
lib lmb: Fix the allocation of overlapping memory areas with !LMB_NONE 2024-12-05 09:01:44 +02:00
log Merge patch series "Tidy up console recording in tests" 2024-08-26 18:52:18 -06:00
optee Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"" 2024-05-19 08:16:36 -06:00
overlay test/overlay: Make this depend on SANDBOX 2024-08-23 15:59:39 -06:00
py test/py: spi: Rephrase the warning/error messages 2024-11-15 13:11:29 -06:00
stdint Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"" 2024-05-19 08:16:36 -06:00
cmd_ut.c test: Move time tests into the lib suite 2024-11-13 11:56:02 -06:00
Kconfig test: Remove ASN1 library test 2024-10-14 17:58:52 -06:00
Makefile test: Move time_ut test into lib 2024-11-13 11:56:02 -06:00
run test: Run the VPL tests with 'make check' 2023-04-03 06:53:53 +12:00
test-main.c Merge patch series "test: Tidy up the test/ directory" 2024-11-13 16:02:58 -06:00
ut.c test: Fail when an empty line is expected but not present 2024-08-26 18:51:48 -06:00