[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 09/53] migration/rdma: Fix qemu_rdma_accept() to return failur
From: |
Markus Armbruster |
Subject: |
[PATCH v2 09/53] migration/rdma: Fix qemu_rdma_accept() to return failure on errors |
Date: |
Thu, 28 Sep 2023 15:19:35 +0200 |
qemu_rdma_accept() returns 0 in some cases even when it didn't
complete its job due to errors. Impact is not obvious. I figure the
caller will soon fail again with a misleading error message.
Fix it to return -1 on any failure.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
---
migration/rdma.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index 0e991175f9..94b828b45d 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -3352,6 +3352,7 @@ static int qemu_rdma_accept(RDMAContext *rdma)
if (cm_event->event != RDMA_CM_EVENT_CONNECT_REQUEST) {
rdma_ack_cm_event(cm_event);
+ ret = -1;
goto err_rdma_dest_wait;
}
@@ -3364,6 +3365,7 @@ static int qemu_rdma_accept(RDMAContext *rdma)
rdma_return_path = qemu_rdma_data_init(rdma->host_port, NULL);
if (rdma_return_path == NULL) {
rdma_ack_cm_event(cm_event);
+ ret = -1;
goto err_rdma_dest_wait;
}
@@ -3375,10 +3377,11 @@ static int qemu_rdma_accept(RDMAContext *rdma)
network_to_caps(&cap);
if (cap.version < 1 || cap.version > RDMA_CONTROL_VERSION_CURRENT) {
- error_report("Unknown source RDMA version: %d, bailing...",
- cap.version);
- rdma_ack_cm_event(cm_event);
- goto err_rdma_dest_wait;
+ error_report("Unknown source RDMA version: %d, bailing...",
+ cap.version);
+ rdma_ack_cm_event(cm_event);
+ ret = -1;
+ goto err_rdma_dest_wait;
}
/*
@@ -3408,9 +3411,10 @@ static int qemu_rdma_accept(RDMAContext *rdma)
if (!rdma->verbs) {
rdma->verbs = verbs;
} else if (rdma->verbs != verbs) {
- error_report("ibv context not matching %p, %p!", rdma->verbs,
- verbs);
- goto err_rdma_dest_wait;
+ error_report("ibv context not matching %p, %p!", rdma->verbs,
+ verbs);
+ ret = -1;
+ goto err_rdma_dest_wait;
}
qemu_rdma_dump_id("dest_init", verbs);
@@ -3467,6 +3471,7 @@ static int qemu_rdma_accept(RDMAContext *rdma)
if (cm_event->event != RDMA_CM_EVENT_ESTABLISHED) {
error_report("rdma_accept not event established");
rdma_ack_cm_event(cm_event);
+ ret = -1;
goto err_rdma_dest_wait;
}
--
2.41.0
- [PATCH v2 00/53] migration/rdma: Error handling fixes, Markus Armbruster, 2023/09/28
- [PATCH v2 08/53] migration/rdma: Give qio_channel_rdma_source_funcs internal linkage, Markus Armbruster, 2023/09/28
- [PATCH v2 12/53] migration/rdma: Drop rdma_add_block() error handling, Markus Armbruster, 2023/09/28
- [PATCH v2 01/53] migration/rdma: Clean up qemu_rdma_poll()'s return type, Markus Armbruster, 2023/09/28
- [PATCH v2 04/53] migration/rdma: Drop fragile wr_id formatting, Markus Armbruster, 2023/09/28
- [PATCH v2 18/53] migration/rdma: Fix io_writev(), io_readv() methods to obey contract, Markus Armbruster, 2023/09/28
- [PATCH v2 09/53] migration/rdma: Fix qemu_rdma_accept() to return failure on errors,
Markus Armbruster <=
- [PATCH v2 07/53] migration/rdma: Clean up two more harmless signed vs. unsigned issues, Markus Armbruster, 2023/09/28
- [PATCH v2 26/53] migration/rdma: Dumb down remaining int error values to -1, Markus Armbruster, 2023/09/28
- [PATCH v2 02/53] migration/rdma: Clean up qemu_rdma_data_init()'s return type, Markus Armbruster, 2023/09/28
- [PATCH v2 28/53] migration/rdma: Drop superfluous assignments to @ret, Markus Armbruster, 2023/09/28
- [PATCH v2 15/53] migration/rdma: Use bool for two RDMAContext flags, Markus Armbruster, 2023/09/28
- [PATCH v2 36/53] migration/rdma: Convert qemu_rdma_exchange_send() to Error, Markus Armbruster, 2023/09/28
- [PATCH v2 38/53] migration/rdma: Convert qemu_rdma_reg_whole_ram_blocks() to Error, Markus Armbruster, 2023/09/28
- [PATCH v2 05/53] migration/rdma: Consistently use uint64_t for work request IDs, Markus Armbruster, 2023/09/28
- [PATCH v2 03/53] migration/rdma: Clean up rdma_delete_block()'s return type, Markus Armbruster, 2023/09/28
- [PATCH v2 19/53] migration/rdma: Replace dangerous macro CHECK_ERROR_STATE(), Markus Armbruster, 2023/09/28