]> Git Repo - qemu.git/commitdiff
exec: fix early return from ram_block_add
authorPaolo Bonzini <[email protected]>
Wed, 9 Mar 2016 17:14:01 +0000 (18:14 +0100)
committerPaolo Bonzini <[email protected]>
Tue, 15 Mar 2016 17:23:33 +0000 (18:23 +0100)
After reporting an error, ram_block_add was going on with the registration
of the RAMBlock.  The visible effect is that it unlocked the ramlist
mutex twice.

Fixes: 528f46af6ecd1e300db18684969104d4067b867b
Reviewed-by: Fam Zheng <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
exec.c

diff --git a/exec.c b/exec.c
index 274b619f888787a41109e0ffa1daec4bf318a64c..f398d212f63f1342bc0833975033b25e054231bf 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -1589,6 +1589,7 @@ static void ram_block_add(RAMBlock *new_block, Error **errp)
             if (err) {
                 error_propagate(errp, err);
                 qemu_mutex_unlock_ramlist();
+                return;
             }
         } else {
             new_block->host = phys_mem_alloc(new_block->max_length,
@@ -1598,6 +1599,7 @@ static void ram_block_add(RAMBlock *new_block, Error **errp)
                                  "cannot set up guest memory '%s'",
                                  memory_region_name(new_block->mr));
                 qemu_mutex_unlock_ramlist();
+                return;
             }
             memory_try_enable_merging(new_block->host, new_block->max_length);
         }
This page took 0.024834 seconds and 4 git commands to generate.