diff mbox series

lib: move phdr increment to for loop heading

Message ID 20240817110222.31415-1-Maxim.Moskalets@kaspersky.com
State Accepted
Delegated to: Tom Rini
Headers show
Series lib: move phdr increment to for loop heading | expand

Commit Message

Maxim Moskalets Aug. 17, 2024, 11:02 a.m. UTC
Shifting this pointer in the loop will be more logical when working
with the code later, because you can see at a glance what exactly
changes at each iteration. Moreover, the code remains equivalent
because this variable is not used after the loop.

Signed-off-by: Maxim Moskalets <maximmosk4@gmail.com>
---
 lib/elf.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Simon Glass Aug. 17, 2024, 3:57 p.m. UTC | #1
Hi Maxim,

On Sat, 17 Aug 2024 at 05:02, Maxim Moskalets <maximmosk4@gmail.com> wrote:
>
> Shifting this pointer in the loop will be more logical when working
> with the code later, because you can see at a glance what exactly
> changes at each iteration. Moreover, the code remains equivalent
> because this variable is not used after the loop.
>
> Signed-off-by: Maxim Moskalets <maximmosk4@gmail.com>
> ---
>  lib/elf.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

BTW we normally use post-increment in loops.

> diff --git a/lib/elf.c b/lib/elf.c
> index dc13935e103..205724b71dc 100644
> --- a/lib/elf.c
> +++ b/lib/elf.c
> @@ -86,7 +86,7 @@ unsigned long load_elf64_image_phdr(unsigned long addr)
>         phdr = (Elf64_Phdr *)(addr + (ulong)ehdr->e_phoff);
>
>         /* Load each program header */
> -       for (i = 0; i < ehdr->e_phnum; ++i) {
> +       for (i = 0; i < ehdr->e_phnum; ++i, ++phdr) {
>                 void *dst = (void *)(ulong)phdr->p_paddr;
>                 void *src = (void *)addr + phdr->p_offset;
>
> @@ -99,7 +99,6 @@ unsigned long load_elf64_image_phdr(unsigned long addr)
>                                phdr->p_memsz - phdr->p_filesz);
>                 flush_cache(rounddown((unsigned long)dst, ARCH_DMA_MINALIGN),
>                             roundup(phdr->p_memsz, ARCH_DMA_MINALIGN));
> -               ++phdr;
>         }
>
>         if (ehdr->e_machine == EM_PPC64 && (ehdr->e_flags &
> @@ -201,7 +200,7 @@ unsigned long load_elf_image_phdr(unsigned long addr)
>         phdr = (Elf32_Phdr *)(addr + ehdr->e_phoff);
>
>         /* Load each program header */
> -       for (i = 0; i < ehdr->e_phnum; ++i) {
> +       for (i = 0; i < ehdr->e_phnum; ++i, ++phdr) {
>                 void *dst = (void *)(uintptr_t)phdr->p_paddr;
>                 void *src = (void *)addr + phdr->p_offset;
>
> @@ -214,7 +213,6 @@ unsigned long load_elf_image_phdr(unsigned long addr)
>                                phdr->p_memsz - phdr->p_filesz);
>                 flush_cache(rounddown((unsigned long)dst, ARCH_DMA_MINALIGN),
>                             roundup(phdr->p_memsz, ARCH_DMA_MINALIGN));
> -               ++phdr;
>         }
>
>         return ehdr->e_entry;
> --
> 2.39.2
>

Regards,
Simon
Tom Rini Aug. 28, 2024, 6:26 p.m. UTC | #2
On Sat, 17 Aug 2024 14:02:22 +0300, Maxim Moskalets wrote:

> Shifting this pointer in the loop will be more logical when working
> with the code later, because you can see at a glance what exactly
> changes at each iteration. Moreover, the code remains equivalent
> because this variable is not used after the loop.
> 
> 

Applied to u-boot/next, thanks!
diff mbox series

Patch

diff --git a/lib/elf.c b/lib/elf.c
index dc13935e103..205724b71dc 100644
--- a/lib/elf.c
+++ b/lib/elf.c
@@ -86,7 +86,7 @@  unsigned long load_elf64_image_phdr(unsigned long addr)
 	phdr = (Elf64_Phdr *)(addr + (ulong)ehdr->e_phoff);
 
 	/* Load each program header */
-	for (i = 0; i < ehdr->e_phnum; ++i) {
+	for (i = 0; i < ehdr->e_phnum; ++i, ++phdr) {
 		void *dst = (void *)(ulong)phdr->p_paddr;
 		void *src = (void *)addr + phdr->p_offset;
 
@@ -99,7 +99,6 @@  unsigned long load_elf64_image_phdr(unsigned long addr)
 			       phdr->p_memsz - phdr->p_filesz);
 		flush_cache(rounddown((unsigned long)dst, ARCH_DMA_MINALIGN),
 			    roundup(phdr->p_memsz, ARCH_DMA_MINALIGN));
-		++phdr;
 	}
 
 	if (ehdr->e_machine == EM_PPC64 && (ehdr->e_flags &
@@ -201,7 +200,7 @@  unsigned long load_elf_image_phdr(unsigned long addr)
 	phdr = (Elf32_Phdr *)(addr + ehdr->e_phoff);
 
 	/* Load each program header */
-	for (i = 0; i < ehdr->e_phnum; ++i) {
+	for (i = 0; i < ehdr->e_phnum; ++i, ++phdr) {
 		void *dst = (void *)(uintptr_t)phdr->p_paddr;
 		void *src = (void *)addr + phdr->p_offset;
 
@@ -214,7 +213,6 @@  unsigned long load_elf_image_phdr(unsigned long addr)
 			       phdr->p_memsz - phdr->p_filesz);
 		flush_cache(rounddown((unsigned long)dst, ARCH_DMA_MINALIGN),
 			    roundup(phdr->p_memsz, ARCH_DMA_MINALIGN));
-		++phdr;
 	}
 
 	return ehdr->e_entry;