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:
parent
b35dfa2bd2
commit
208fbb675c
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user