mirror of https://github.com/xqemu/xqemu.git
exec: adjust rcu_read_lock requirement
qemu_ram_unset_idstr() doesn't need rcu lock anymore, meanwhile make the range of rcu lock in qemu_ram_set_idstr() as small as possible. Signed-off-by: Gonglei <arei.gonglei@huawei.com> Message-Id: <1462845901-89716-3-git-send-email-arei.gonglei@huawei.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
fa53a0e53e
commit
ab0a995608
6
exec.c
6
exec.c
|
@ -1421,8 +1421,6 @@ void qemu_ram_set_idstr(RAMBlock *new_block, const char *name, DeviceState *dev)
|
|||
{
|
||||
RAMBlock *block;
|
||||
|
||||
rcu_read_lock();
|
||||
|
||||
assert(new_block);
|
||||
assert(!new_block->idstr[0]);
|
||||
|
||||
|
@ -1435,6 +1433,7 @@ void qemu_ram_set_idstr(RAMBlock *new_block, const char *name, DeviceState *dev)
|
|||
}
|
||||
pstrcat(new_block->idstr, sizeof(new_block->idstr), name);
|
||||
|
||||
rcu_read_lock();
|
||||
QLIST_FOREACH_RCU(block, &ram_list.blocks, next) {
|
||||
if (block != new_block &&
|
||||
!strcmp(block->idstr, new_block->idstr)) {
|
||||
|
@ -1453,12 +1452,9 @@ void qemu_ram_unset_idstr(RAMBlock *block)
|
|||
* migration. Ignore the problem since hot-unplug during migration
|
||||
* does not work anyway.
|
||||
*/
|
||||
|
||||
rcu_read_lock();
|
||||
if (block) {
|
||||
memset(block->idstr, 0, sizeof(block->idstr));
|
||||
}
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
static int memory_try_enable_merging(void *addr, size_t len)
|
||||
|
|
Loading…
Reference in New Issue