Revision fb1c2cd7 exec.c

b/exec.c
305 305
    if (!p) {
306 306
        /* allocate if not found */
307 307
#if defined(CONFIG_USER_ONLY)
308
        unsigned long addr;
309 308
        size_t len = sizeof(PageDesc) * L2_SIZE;
310 309
        /* Don't use qemu_malloc because it may recurse.  */
311 310
        p = mmap(0, len, PROT_READ | PROT_WRITE,
312 311
                 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
313 312
        *lp = p;
314
        addr = h2g(p);
315
        if (addr == (target_ulong)addr) {
313
        if (h2g_valid(p)) {
314
            unsigned long addr = h2g(p);
316 315
            page_set_flags(addr & TARGET_PAGE_MASK,
317 316
                           TARGET_PAGE_ALIGN(addr + len),
318 317
                           PAGE_RESERVED); 

Also available in: Unified diff