]> git.proxmox.com Git - qemu.git/commitdiff
alpha-linux-user: Work around hosted mmap allocation problems
authorRichard Henderson <rth@twiddle.net>
Thu, 31 May 2012 23:09:39 +0000 (16:09 -0700)
committerRichard Henderson <rth@twiddle.net>
Sat, 4 Aug 2012 16:37:48 +0000 (09:37 -0700)
Signed-off-by: Richard Henderson <rth@twiddle.net>
target-alpha/cpu.h

index 99f9ee168d960a749cec4e53ea788a5182e5b9b0..5689760cefd3f336d3c11dc85afeefd19543af9f 100644 (file)
 
 #define TARGET_PAGE_BITS 13
 
+#ifdef CONFIG_USER_ONLY
+/* ??? The kernel likes to give addresses in high memory.  If the host has
+   more virtual address space than the guest, this can lead to impossible
+   allocations.  Honor the long-standing assumption that only kernel addrs
+   are negative, but otherwise allow allocations anywhere.  This could lead
+   to tricky emulation problems for programs doing tagged addressing, but
+   that's far fewer than encounter the impossible allocation problem.  */
+#define TARGET_PHYS_ADDR_SPACE_BITS  63
+#define TARGET_VIRT_ADDR_SPACE_BITS  63
+#else
 /* ??? EV4 has 34 phys addr bits, EV5 has 40, EV6 has 44.  */
-#define TARGET_PHYS_ADDR_SPACE_BITS    44
-#define TARGET_VIRT_ADDR_SPACE_BITS    (30 + TARGET_PAGE_BITS)
+#define TARGET_PHYS_ADDR_SPACE_BITS  44
+#define TARGET_VIRT_ADDR_SPACE_BITS  (30 + TARGET_PAGE_BITS)
+#endif
 
 /* Alpha major type */
 enum {