nvme_rdma: more cm_event validation to a helper function.

This step is going to become more involved, so it's best to keep it in a
separate function entirely.

Change-Id: Iefa9860420edf28e858c4ed8aa932985c686cfd9
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/473060
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Seth Howell 2019-11-01 15:28:58 -07:00 committed by Tomasz Zawadzki
parent b35dfa2bd2
commit 208fbb675c

View File

@ -352,6 +352,23 @@ nvme_rdma_poll_events(struct nvme_rdma_ctrlr *rctrlr)
}
}
static int
nvme_rdma_validate_cm_event(enum rdma_cm_event_type expected_evt_type,
struct rdma_cm_event *reaped_evt)
{
int rc = -EBADMSG;
if (expected_evt_type == reaped_evt->event) {
return 0;
}
SPDK_ERRLOG("Expected %s but received %s (%d) from CM event channel (status = %d)\n",
nvme_rdma_cm_event_str_get(expected_evt_type),
nvme_rdma_cm_event_str_get(reaped_evt->event), reaped_evt->event,
reaped_evt->status);
return rc;
}
static int
nvme_rdma_process_event(struct nvme_rdma_qpair *rqpair,
struct rdma_event_channel *channel,
@ -385,13 +402,7 @@ nvme_rdma_process_event(struct nvme_rdma_qpair *rqpair,
return -EADDRNOTAVAIL;
}
if (rqpair->evt->event != evt) {
SPDK_ERRLOG("Expected %s but received %s (%d) from CM event channel (status = %d)\n",
nvme_rdma_cm_event_str_get(evt),
nvme_rdma_cm_event_str_get(rqpair->evt->event), rqpair->evt->event,
rqpair->evt->status);
rc = -EBADMSG;
}
rc = nvme_rdma_validate_cm_event(evt, rqpair->evt);
rc2 = nvme_rdma_qpair_process_cm_event(rqpair);
/* bad message takes precedence over the other error codes from processing the event. */