From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39073) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bnVvH-000796-Jm for qemu-devel@nongnu.org; Fri, 23 Sep 2016 15:14:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bnVvG-0006jU-LU for qemu-devel@nongnu.org; Fri, 23 Sep 2016 15:14:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:11599) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bnVvG-0006jJ-F4 for qemu-devel@nongnu.org; Fri, 23 Sep 2016 15:14:10 -0400 From: "Dr. David Alan Gilbert (git)" Date: Fri, 23 Sep 2016 20:14:04 +0100 Message-Id: <1474658044-9479-4-git-send-email-dgilbert@redhat.com> In-Reply-To: <1474658044-9479-1-git-send-email-dgilbert@redhat.com> References: <1474658044-9479-1-git-send-email-dgilbert@redhat.com> Subject: [Qemu-devel] [PATCH 3/3] migration/rdma: Don't flag an error when we've been told about one List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, amit.shah@redhat.com, quintela@redhat.com, michael@hinespot.com From: "Dr. David Alan Gilbert" If the other side tells us there's been an error and we fail the migration, we don't need to signal that failure to the other side because it already knew. Signed-off-by: Dr. David Alan Gilbert --- migration/rdma.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/migration/rdma.c b/migration/rdma.c index 7271292..674ccab 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -350,6 +350,7 @@ typedef struct RDMAContext { */ int error_state; int error_reported; + int received_error; /* * Description of ram blocks used throughout the code. @@ -1676,6 +1677,9 @@ static int qemu_rdma_exchange_get_response(RDMAContext *rdma, ", but got: %s (%d), length: %d", control_desc[expecting], expecting, control_desc[head->type], head->type, head->len); + if (head->type == RDMA_CONTROL_ERROR) { + rdma->received_error = true; + } return -EIO; } if (head->len > RDMA_CONTROL_MAX_BUFFER - sizeof(*head)) { @@ -2202,7 +2206,7 @@ static void qemu_rdma_cleanup(RDMAContext *rdma) int ret, idx; if (rdma->cm_id && rdma->connected) { - if (rdma->error_state) { + if (rdma->error_state && !rdma->received_error) { RDMAControlHeader head = { .len = 0, .type = RDMA_CONTROL_ERROR, .repeat = 1, -- 2.7.4