qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] linux-user: Do not subtract offset from end address
@ 2014-11-06 19:43 Tom Musta
  2014-11-07  7:23 ` Riku Voipio
  2014-11-09  0:22 ` Andreas Färber
  0 siblings, 2 replies; 5+ messages in thread
From: Tom Musta @ 2014-11-06 19:43 UTC (permalink / raw)
  To: qemu-devel, qemu-ppc; +Cc: Tom Musta, riku.voipio

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 <tommusta@gmail.com>
---

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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-11-10 17:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-06 19:43 [Qemu-devel] [PATCH] linux-user: Do not subtract offset from end address Tom Musta
2014-11-07  7:23 ` Riku Voipio
2014-11-07 12:55   ` Jonas Maebe
2014-11-09  0:22 ` Andreas Färber
2014-11-10 17:53   ` Tom Musta

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).