[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 1/7] migration/rdma: Fix save_page method to fail on polling e
From: |
Markus Armbruster |
Subject: |
[PATCH v2 1/7] migration/rdma: Fix save_page method to fail on polling error |
Date: |
Wed, 20 Sep 2023 20:31:43 +0200 |
qemu_rdma_save_page() reports polling error with error_report(), then
succeeds anyway. This is because the variable holding the polling
status *shadows* the variable the function returns. The latter
remains zero.
Broken since day one, and duplicated more recently.
Fixes: 2da776db4846 (rdma: core logic)
Fixes: b390afd8c50b (migration/rdma: Fix out of order wrid)
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
---
migration/rdma.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index a2a3db35b1..3915d1d7c9 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -3282,7 +3282,8 @@ static size_t qemu_rdma_save_page(QEMUFile *f,
*/
while (1) {
uint64_t wr_id, wr_id_in;
- int ret = qemu_rdma_poll(rdma, rdma->recv_cq, &wr_id_in, NULL);
+ ret = qemu_rdma_poll(rdma, rdma->recv_cq, &wr_id_in, NULL);
+
if (ret < 0) {
error_report("rdma migration: polling error! %d", ret);
goto err;
@@ -3297,7 +3298,8 @@ static size_t qemu_rdma_save_page(QEMUFile *f,
while (1) {
uint64_t wr_id, wr_id_in;
- int ret = qemu_rdma_poll(rdma, rdma->send_cq, &wr_id_in, NULL);
+ ret = qemu_rdma_poll(rdma, rdma->send_cq, &wr_id_in, NULL);
+
if (ret < 0) {
error_report("rdma migration: polling error! %d", ret);
goto err;
--
2.41.0
- [PATCH v2 0/7] Steps towards enabling -Wshadow=local, Markus Armbruster, 2023/09/20
- [PATCH v2 6/7] block: Clean up local variable shadowing, Markus Armbruster, 2023/09/20
- [PATCH v2 5/7] block/vdi: Clean up local variable shadowing, Markus Armbruster, 2023/09/20
- [PATCH v2 1/7] migration/rdma: Fix save_page method to fail on polling error,
Markus Armbruster <=
- [PATCH v2 4/7] block/dirty-bitmap: Clean up local variable shadowing, Markus Armbruster, 2023/09/20
- [PATCH v2 2/7] migration: Clean up local variable shadowing, Markus Armbruster, 2023/09/20
- [PATCH v2 7/7] qobject atomics osdep: Make a few macros more hygienic, Markus Armbruster, 2023/09/20
- [PATCH v2 3/7] ui: Clean up local variable shadowing, Markus Armbruster, 2023/09/20