On 18/09/2023 22:42, Markus Armbruster wrote:
> Functions that use an Error **errp parameter to return errors should
> not also report them to the user, because reporting is the caller's
> job. When the caller does, the error is reported twice. When it
> doesn't (because it recovered from the error), there is no error to
> report, i.e. the report is bogus.
>
> qemu_rdma_source_init() and qemu_rdma_accept() violate this principle:
> they call error_report() via qemu_rdma_reg_control(). I elected not
> to investigate how callers handle the error, i.e. precise impact is
> not known.
>
> Clean this up by dropping the error reporting from
> qemu_rdma_reg_control(). I believe the callers' error reports
> suffice. If they don't, we need to convert to Error instead.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
> ---
> migration/rdma.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/migration/rdma.c b/migration/rdma.c
> index bf4e67d68d..29ad8ae832 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -1349,7 +1349,6 @@ static int qemu_rdma_reg_control(RDMAContext *rdma, int idx)
> rdma->total_registrations++;
> return 0;
> }
> - error_report("qemu_rdma_reg_control failed");
> return -1;
> }
>