From: Alex Rozenman Date: Tue, 13 Dec 2011 10:52:08 +0000 (+0200) Subject: phys_page_find_alloc: Use correct initial region_offset. X-Git-Tag: TizenStudio_2.0_p2.3.2~208^2~4874 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ab97b7f81dccccee03a3f1d03a4d09a27f0eeff;p=sdk%2Femulator%2Fqemu.git phys_page_find_alloc: Use correct initial region_offset. This fixes a common bug with initial region_offset value. Usually, the pages are re-assigned afterwards, so the bug has a very small effect on regular QEMU use flows. Signed-off-by: Alex Rozenman Signed-off-by: Anthony Liguori --- diff --git a/exec.c b/exec.c index eef5e2f..06889bd 100644 --- a/exec.c +++ b/exec.c @@ -418,6 +418,7 @@ static PhysPageDesc *phys_page_find_alloc(target_phys_addr_t index, int alloc) pd = *lp; if (pd == NULL) { int i; + int first_index = index & ~(L2_SIZE - 1); if (!alloc) { return NULL; @@ -427,7 +428,7 @@ static PhysPageDesc *phys_page_find_alloc(target_phys_addr_t index, int alloc) for (i = 0; i < L2_SIZE; i++) { pd[i].phys_offset = IO_MEM_UNASSIGNED; - pd[i].region_offset = (index + i) << TARGET_PAGE_BITS; + pd[i].region_offset = (first_index + i) << TARGET_PAGE_BITS; } }