On 08/06/2015 17:19, Igor Mammedov wrote: > - qemu_mutex_lock_ramlist(); > - QLIST_FOREACH_RCU(block, &ram_list.blocks, next) { > - if (addr == block->offset) { > - QLIST_REMOVE_RCU(block, next); > - ram_list.mru_block = NULL; > - /* Write list before version */ > - smp_wmb(); > - ram_list.version++; > - g_free_rcu(block, rcu);
qemu_ram_free here does: call_rcu(block, reclaim_ramblock, rcu); which is different. Paolo > - break; > - } > - } > - qemu_mutex_unlock_ramlist();