Dear Matthias Weisser, In message <1295435020-14190-1-git-send-email-weiss...@arcor.de> you wrote: > When an elf section is already at the right position (e.g. after image > decompression by bootm) there is no need to copy it. This saves some ms > when bootig an elf image. > > Changes since V1 > - Fixed style issues > > Signed-off-by: Matthias Weisser <weiss...@arcor.de> > --- > common/cmd_elf.c | 8 +++++--- > 1 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/common/cmd_elf.c b/common/cmd_elf.c > index bf32612..3537769 100644 > --- a/common/cmd_elf.c > +++ b/common/cmd_elf.c > @@ -342,9 +342,11 @@ static unsigned long load_elf_image_shdr(unsigned long > addr) > memset ((void *)shdr->sh_addr, 0, shdr->sh_size); > } else { > image = (unsigned char *) addr + shdr->sh_offset; > - memcpy ((void *) shdr->sh_addr, > - (const void *) image, > - shdr->sh_size); > + if ((void *) shdr->sh_addr != (void *) image) { > + memcpy((void *) shdr->sh_addr, > + (const void *) image, > + shdr->sh_size); > + }
The idea is correct, but I think the implementation is suboptimal. Instead of fixing this use case only, the test should be moved into the implementation of memcpy() itself so any other callers with such a situation benefit from it, too. While we are at it, we should do the same with bcopy() and memmove(), too. Thanks. Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Marriage is the triumph of imagination over intelligence. Second marriage is the triumph of hope over experience. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot