mirror of https://github.com/xemu-project/xemu.git
exec: fix early return from ram_block_add
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: 528f46af6e
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
e1fb647199
commit
39c350ee12
2
exec.c
2
exec.c
|
@ -1589,6 +1589,7 @@ static void ram_block_add(RAMBlock *new_block, Error **errp)
|
||||||
if (err) {
|
if (err) {
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
qemu_mutex_unlock_ramlist();
|
qemu_mutex_unlock_ramlist();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
new_block->host = phys_mem_alloc(new_block->max_length,
|
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'",
|
"cannot set up guest memory '%s'",
|
||||||
memory_region_name(new_block->mr));
|
memory_region_name(new_block->mr));
|
||||||
qemu_mutex_unlock_ramlist();
|
qemu_mutex_unlock_ramlist();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
memory_try_enable_merging(new_block->host, new_block->max_length);
|
memory_try_enable_merging(new_block->host, new_block->max_length);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue