summaryrefslogtreecommitdiff
path: root/exec.c
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-03 17:51:24 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-03 17:51:24 +0000
commite0b8d65a972ee9af623635b00f9a2f9e470a890b (patch)
tree1d58cd08e067e9bf717b072aa3a5547be6389eeb /exec.c
parentd059c17270bdfa1b4054a98e1c65360af81ece9c (diff)
Do not attempt to set page flags for pages outside target address space
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4310 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'exec.c')
-rw-r--r--exec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/exec.c b/exec.c
index d9e959d69d..eb3c8abf5d 100644
--- a/exec.c
+++ b/exec.c
@@ -227,6 +227,10 @@ static void page_init(void)
do {
n = fscanf (f, "%llx-%llx %*[^\n]\n", &startaddr, &endaddr);
if (n == 2) {
+ startaddr = MIN(startaddr,
+ (1ULL << TARGET_PHYS_ADDR_SPACE_BITS) - 1);
+ endaddr = MIN(endaddr,
+ (1ULL << TARGET_PHYS_ADDR_SPACE_BITS) - 1);
page_set_flags(TARGET_PAGE_ALIGN(startaddr),
TARGET_PAGE_ALIGN(endaddr),
PAGE_RESERVED);