[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [6639] Fix unassigned region offsets.
From: |
Paul Brook |
Subject: |
[Qemu-devel] [6639] Fix unassigned region offsets. |
Date: |
Mon, 23 Feb 2009 13:16:07 +0000 |
Revision: 6639
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6639
Author: pbrook
Date: 2009-02-23 13:16:07 +0000 (Mon, 23 Feb 2009)
Log Message:
-----------
Fix unassigned region offsets.
Modified Paths:
--------------
trunk/exec.c
Modified: trunk/exec.c
===================================================================
--- trunk/exec.c 2009-02-22 11:59:59 UTC (rev 6638)
+++ trunk/exec.c 2009-02-23 13:16:07 UTC (rev 6639)
@@ -368,8 +368,10 @@
return NULL;
pd = qemu_vmalloc(sizeof(PhysPageDesc) * L2_SIZE);
*lp = pd;
- for (i = 0; i < L2_SIZE; i++)
+ for (i = 0; i < L2_SIZE; i++) {
pd[i].phys_offset = IO_MEM_UNASSIGNED;
+ pd[i].region_offset = (index + i) << TARGET_PAGE_BITS;
+ }
}
return ((PhysPageDesc *)pd) + (index & (L2_SIZE - 1));
}
@@ -2280,6 +2282,9 @@
if (kvm_enabled())
kvm_set_phys_mem(start_addr, size, phys_offset);
+ if (phys_offset == IO_MEM_UNASSIGNED) {
+ region_offset = start_addr;
+ }
region_offset &= TARGET_PAGE_MASK;
size = (size + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK;
end_addr = start_addr + (target_phys_addr_t)size;
@@ -2327,7 +2332,7 @@
if (need_subpage || phys_offset & IO_MEM_SUBWIDTH) {
subpage = subpage_init((addr & TARGET_PAGE_MASK),
&p->phys_offset, IO_MEM_UNASSIGNED,
- 0);
+ addr & TARGET_PAGE_MASK);
subpage_register(subpage, start_addr2, end_addr2,
phys_offset, region_offset);
p->region_offset = 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [6639] Fix unassigned region offsets.,
Paul Brook <=