[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH] linux-user: Do not subtract offset from end address
From: |
Tom Musta |
Subject: |
[Qemu-ppc] [PATCH] linux-user: Do not subtract offset from end address |
Date: |
Thu, 6 Nov 2014 13:43:13 -0600 |
When computing the upper address of a program segment, do not subtract the
offset from the virtual address; instead compute the sum of the virtual address
and the memory size.
Signed-off-by: Tom Musta <address@hidden>
---
Please include this patch in QEMU 2.2.
Commit a93934fecd4dffc9d4b452b670c9506be5dea30d injected a regression of Linux
User Mode that I was able to detect on PowerPC 64 (but not x86). I suspect that
large page size on the host has something to do with it. In any case, that
commit
adjusted the lower address of a program segment by the program header's offset
field. However, it also inadvertantly adjusted the upper address by the offset
also.
linux-user/elfload.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 84123ba..e2596a4 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -1824,7 +1824,7 @@ static void load_elf_image(const char *image_name, int
image_fd,
if (a < loaddr) {
loaddr = a;
}
- a += phdr[i].p_memsz;
+ a = phdr[i].p_vaddr + phdr[i].p_memsz;
if (a > hiaddr) {
hiaddr = a;
}
--
1.7.1
- [Qemu-ppc] [PATCH] linux-user: Do not subtract offset from end address,
Tom Musta <=