diff options
author | Alexander Graf <agraf@suse.de> | 2011-05-20 17:33:28 +0200 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2011-05-20 17:35:13 +0200 |
commit | fb8b273579eaa1e6cee4017e4b23104e17a36f07 (patch) | |
tree | 3e39e998468033e7e1aa2f746bf966257504d85f /exec.c | |
parent | 22486aa04aa300db0cc5887d9612b4d486f0edac (diff) | |
download | qemu-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.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -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); |