mirror of https://github.com/xemu-project/xemu.git
migration/rdma: Fix qemu_rdma_accept() to return failure on errors
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> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Message-ID: <20230928132019.2544702-10-armbru@redhat.com>
This commit is contained in:
parent
36cc822d85
commit
9a6afb1170
|
@ -3360,6 +3360,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;
|
||||
}
|
||||
|
||||
|
@ -3372,6 +3373,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;
|
||||
}
|
||||
|
||||
|
@ -3383,10 +3385,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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -3416,9 +3419,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);
|
||||
|
@ -3475,6 +3479,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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue