[PATCHv2 4/5] efi_mem_sort: skip unnecessary compare
Heinrich Schuchardt
xypron.glpk at gmx.de
Thu Apr 9 21:47:03 CEST 2026
Am 2. April 2026 22:50:37 MESZ schrieb rs at ti.com:
>From: Randolph Sapp <rs at ti.com>
>
>I don't want to think about the possibility of this pointer containing a
>reference to something from a previous iteration. At best it results in
>a some arithmetic and a comparison that should usually be unnecessary.
"a some arithmetic" is not understandable. Please, adjust the commit message.
>
>Signed-off-by: Randolph Sapp <rs at ti.com>
>---
> lib/efi_loader/efi_memory.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
>index b77c2f980cc..882366a9f8a 100644
>--- a/lib/efi_loader/efi_memory.c
>+++ b/lib/efi_loader/efi_memory.c
>@@ -129,13 +129,13 @@ static uint64_t desc_get_end(struct efi_mem_desc *desc)
> static void efi_mem_sort(void)
> {
> struct efi_mem_list *lmem;
>- struct efi_mem_list *prevmem = NULL;
> bool merge_again = true;
>
> list_sort(NULL, &efi_mem, efi_mem_cmp);
>
> /* Now merge entries that can be merged */
> while (merge_again) {
The suggested change looks correct. But we could go further:
We could get rid of this outer loop by either eliminating prev instead of cur or by using list_for_each_safe().
Best regards
Heinrich
>+ struct efi_mem_list *prevmem = NULL;
> merge_again = false;
> list_for_each_entry(lmem, &efi_mem, link) {
> struct efi_mem_desc *prev;
More information about the U-Boot
mailing list