[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 2/5] migration: Fix missing rcu_read_unlock
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[PATCH v4 2/5] migration: Fix missing rcu_read_unlock |
Date: |
Mon, 7 Oct 2019 15:36:38 +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>
---
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
- [PATCH v4 0/5] Automatic RCU read unlock, Dr. David Alan Gilbert (git), 2019/10/07
- [PATCH v4 1/5] rcu: Add automatically released rcu_read_lock variants, Dr. David Alan Gilbert (git), 2019/10/07
- [PATCH v4 2/5] migration: Fix missing rcu_read_unlock,
Dr. David Alan Gilbert (git) <=
- [PATCH v4 3/5] migration: Use automatic rcu_read unlock in ram.c, Dr. David Alan Gilbert (git), 2019/10/07
- [PATCH v4 4/5] migration: Use automatic rcu_read unlock in rdma.c, Dr. David Alan Gilbert (git), 2019/10/07
- [PATCH v4 5/5] rcu: Use automatic rc_read unlock in core memory/exec code, Dr. David Alan Gilbert (git), 2019/10/07
- Re: [PATCH v4 0/5] Automatic RCU read unlock, Dr. David Alan Gilbert, 2019/10/11