[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 03/21] migration: Fix missing rcu_read_unlock
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[PULL 03/21] migration: Fix missing rcu_read_unlock |
Date: |
Fri, 11 Oct 2019 20:16:28 +0100 |
From: "Dr. David Alan Gilbert" <address@hidden>
Use the automatic rcu_read unlocker to fix a missing unlock.
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
---
migration/ram.c | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index 22423f08cd..484d66379a 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -3373,24 +3373,23 @@ static int ram_save_setup(QEMUFile *f, void *opaque)
}
(*rsp)->f = f;
- rcu_read_lock();
-
- qemu_put_be64(f, ram_bytes_total_common(true) | RAM_SAVE_FLAG_MEM_SIZE);
+ WITH_RCU_READ_LOCK_GUARD() {
+ qemu_put_be64(f, ram_bytes_total_common(true) |
RAM_SAVE_FLAG_MEM_SIZE);
- RAMBLOCK_FOREACH_MIGRATABLE(block) {
- qemu_put_byte(f, strlen(block->idstr));
- qemu_put_buffer(f, (uint8_t *)block->idstr, strlen(block->idstr));
- qemu_put_be64(f, block->used_length);
- if (migrate_postcopy_ram() && block->page_size != qemu_host_page_size)
{
- qemu_put_be64(f, block->page_size);
- }
- if (migrate_ignore_shared()) {
- qemu_put_be64(f, block->mr->addr);
+ RAMBLOCK_FOREACH_MIGRATABLE(block) {
+ qemu_put_byte(f, strlen(block->idstr));
+ qemu_put_buffer(f, (uint8_t *)block->idstr, strlen(block->idstr));
+ qemu_put_be64(f, block->used_length);
+ if (migrate_postcopy_ram() && block->page_size !=
+ qemu_host_page_size) {
+ qemu_put_be64(f, block->page_size);
+ }
+ if (migrate_ignore_shared()) {
+ qemu_put_be64(f, block->mr->addr);
+ }
}
}
- rcu_read_unlock();
-
ram_control_before_iterate(f, RAM_CONTROL_SETUP);
ram_control_after_iterate(f, RAM_CONTROL_SETUP);
--
2.23.0
- [PULL 00/21] migration queue, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 01/21] migration: use migration_is_active to represent active state, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 02/21] rcu: Add automatically released rcu_read_lock variants, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 03/21] migration: Fix missing rcu_read_unlock,
Dr. David Alan Gilbert (git) <=
- [PULL 05/21] migration: Use automatic rcu_read unlock in rdma.c, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 08/21] migration/postcopy: allocate tmp_page in setup stage, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 04/21] migration: Use automatic rcu_read unlock in ram.c, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 06/21] rcu: Use automatic rc_read unlock in core memory/exec code, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 09/21] migration/postcopy: map large zero page in postcopy_ram_incoming_setup(), Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 07/21] migration: Don't try and recover return path in non-postcopy, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 11/21] migration: pass in_postcopy instead of check state again, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 10/21] migration/postcopy: fix typo in mark_postcopy_blocktime_begin's comment, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 12/21] migration: report SaveStateEntry id and name on failure, Dr. David Alan Gilbert (git), 2019/10/11
- [PULL 13/21] migration/postcopy: mis->have_listen_thread check will never be touched, Dr. David Alan Gilbert (git), 2019/10/11