aboutsummaryrefslogtreecommitdiff
path: root/exec.c
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2011-05-20 17:33:28 +0200
committerAlexander Graf <agraf@suse.de>2011-05-20 17:35:13 +0200
commitfb8b273579eaa1e6cee4017e4b23104e17a36f07 (patch)
tree3e39e998468033e7e1aa2f746bf966257504d85f /exec.c
parent22486aa04aa300db0cc5887d9612b4d486f0edac (diff)
downloadqemu-fb8b273579eaa1e6cee4017e4b23104e17a36f07.zip
qemu-fb8b273579eaa1e6cee4017e4b23104e17a36f07.tar.gz
qemu-fb8b273579eaa1e6cee4017e4b23104e17a36f07.tar.bz2
s390x: complain when allocating ram fails
While trying out the > 64GB guest RAM patch, I hit some virtual address limitations of my host system, which resulted in mmap failing. Unfortunately, qemu didn't tell me about this failure, but just used the NULL pointer happily, resulting in either segmentation faults or other fun errors. To spare other users from tracing this down, let's print a nice message instead so the user can figure out what's wrong from there. Signed-off-by: Alexander Graf <agraf@suse.de>
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 3f96d44..a4785b2 100644
--- a/exec.c
+++ b/exec.c
@@ -2918,6 +2918,10 @@ ram_addr_t qemu_ram_alloc_from_ptr(DeviceState *dev, const char *name,
new_block->host = mmap((void*)0x800000000, size,
PROT_EXEC|PROT_READ|PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
+ if (new_block->host == MAP_FAILED) {
+ fprintf(stderr, "Allocating RAM failed\n");
+ abort();
+ }
#else
if (xen_mapcache_enabled()) {
xen_ram_alloc(new_block->offset, size);