On Thu, Oct 20, 2016 at 03:40:29PM -0700, Steve Wise wrote: > @@ -1237,18 +1237,22 @@ out_destroy_queue_ib: > static int nvme_rdma_conn_rejected(struct nvme_rdma_queue *queue, > struct rdma_cm_event *ev) > { > + struct rdma_cm_id *cm_id = queue->cm_id; > + int rdma_status = ev->status; > + short nvme_status = -1; > + > + if (rdma_consumer_reject(cm_id, rdma_status) && > + ev->param.conn.private_data_len) { > struct nvme_rdma_cm_rej *rej = > (struct nvme_rdma_cm_rej *)ev->param.conn.private_data; Given the nasty casting issues in the current RDMA/CM API maybe we should actually expand the scope of the rdma_consumer_reject helper to include the above check, e.g. check that there is a private data len and then return a pointer to the private data? Something like static int nvme_rdma_conn_rejected(struct nvme_rdma_queue *queue, struct rdma_cm_event *ev) { struct rdma_cm_id *cm_id = queue->cm_id; struct nvme_rdma_cm_rej *rej short nvme_status = -1; rej = rdma_cm_reject_message(ev); if (rej) nvme_status = le16_to_cpu(rej->sts); > > + dev_err(queue->ctrl->ctrl.device, "Connect rejected: status %d (%s) " > + "nvme status %d.\n", rdma_status, > + rdma_reject_msg(cm_id, rdma_status), nvme_status); And while we're pretty printing the rest it would be nice to pretty print the NVMe status here as well. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html