
Dear Matthias Weisser,
In message 1295435020-14190-1-git-send-email-weisserm@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 weisserm@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