On 18/09/2023 22:42, Markus Armbruster wrote:
> When qemu_rdma_wait_comp_channel() receives an event from the
> completion channel, it reports an error "receive cm event while wait
> comp channel,cm event is T", where T is the numeric event type.
> However, the function fails only when T is a disconnect or device
> removal. Events other than these two are not actually an error, and
> reporting them as an error is wrong. If we need to report them to the
> user, we should use something else, and what to use depends on why we
> need to report them to the user.
>
> For now, report this error only when the function actually fails.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
> ---
> migration/rdma.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/migration/rdma.c b/migration/rdma.c
> index 29ad8ae832..cbf5e6b9a8 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -1566,11 +1566,11 @@ static int qemu_rdma_wait_comp_channel(RDMAContext *rdma,
> return -1;
> }
>
> - error_report("receive cm event while wait comp channel,"
> - "cm event is %d", cm_event->event);
> if (cm_event->event == RDMA_CM_EVENT_DISCONNECTED ||
> cm_event->event == RDMA_CM_EVENT_DEVICE_REMOVAL) {
> rdma_ack_cm_event(cm_event);
> + error_report("receive cm event while wait comp channel,"
> + "cm event is %d", cm_event->event);
> return -1;
> }
> rdma_ack_cm_event(cm_event);