
On Tue, 30 Jul 2024 at 14:12, Sughosh Ganu sughosh.ganu@linaro.org wrote:
Use the list_for_each_entry() API to get the efi_mem_list node directly, instead of making an additional call to list_entry().
Signed-off-by: Sughosh Ganu sughosh.ganu@linaro.org
lib/efi_loader/efi_memory.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-)
diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c index 8d4f6e339d..6819c2ec90 100644 --- a/lib/efi_loader/efi_memory.c +++ b/lib/efi_loader/efi_memory.c @@ -127,7 +127,7 @@ static uint64_t desc_get_end(struct efi_mem_desc *desc) */ static void efi_mem_sort(void) {
struct list_head *lhandle;
struct efi_mem_list *lmem; struct efi_mem_list *prevmem = NULL; bool merge_again = true;
@@ -136,13 +136,11 @@ static void efi_mem_sort(void) /* Now merge entries that can be merged */ while (merge_again) { merge_again = false;
list_for_each(lhandle, &efi_mem) {
struct efi_mem_list *lmem;
list_for_each_entry(lmem, &efi_mem, link) { struct efi_mem_desc *prev; struct efi_mem_desc *cur; uint64_t pages;
lmem = list_entry(lhandle, struct efi_mem_list, link); if (!prevmem) { prevmem = lmem; continue;
@@ -269,7 +267,7 @@ static efi_status_t efi_add_memory_map_pg(u64 start, u64 pages, int memory_type, bool overlap_only_ram) {
struct list_head *lhandle;
struct efi_mem_list *lmem; struct efi_mem_list *newlist; bool carve_again; uint64_t carved_pages = 0;
@@ -309,11 +307,9 @@ static efi_status_t efi_add_memory_map_pg(u64 start, u64 pages, /* Add our new map */ do { carve_again = false;
list_for_each(lhandle, &efi_mem) {
struct efi_mem_list *lmem;
list_for_each_entry(lmem, &efi_mem, link) { s64 r;
lmem = list_entry(lhandle, struct efi_mem_list, link); r = efi_mem_carve_out(lmem, &newlist->desc, overlap_only_ram); switch (r) {
@@ -445,7 +441,7 @@ static efi_status_t efi_check_allocated(u64 addr, bool must_be_allocated) */ static uint64_t efi_find_free_memory(uint64_t len, uint64_t max_addr) {
struct list_head *lhandle;
struct efi_mem_list *lmem; /* * Prealign input max address, so we simplify our matching
@@ -453,9 +449,7 @@ static uint64_t efi_find_free_memory(uint64_t len, uint64_t max_addr) */ max_addr &= ~EFI_PAGE_MASK;
list_for_each(lhandle, &efi_mem) {
struct efi_mem_list *lmem = list_entry(lhandle,
struct efi_mem_list, link);
list_for_each_entry(lmem, &efi_mem, link) { struct efi_mem_desc *desc = &lmem->desc; uint64_t desc_len = desc->num_pages << EFI_PAGE_SHIFT; uint64_t desc_end = desc->physical_start + desc_len;
@@ -745,7 +739,7 @@ efi_status_t efi_get_memory_map(efi_uintn_t *memory_map_size, { int map_entries; efi_uintn_t map_size = 0;
struct list_head *lhandle;
struct efi_mem_list *lmem; efi_uintn_t provided_map_size; if (!memory_map_size)
@@ -774,10 +768,7 @@ efi_status_t efi_get_memory_map(efi_uintn_t *memory_map_size, /* Copy list into array */ /* Return the list in ascending order */ memory_map = &memory_map[map_entries - 1];
list_for_each(lhandle, &efi_mem) {
struct efi_mem_list *lmem;
lmem = list_entry(lhandle, struct efi_mem_list, link);
list_for_each_entry(lmem, &efi_mem, link) { *memory_map = lmem->desc; memory_map--; }
-- 2.34.1
Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org