On 08/03/2013 03:45, Nicholas A. Bellinger wrote:
+++ b/drivers/infiniband/ulp/isert/isert_verbs.c
+#define ISERT_ADDR_ROUTE_TIMEOUT 1000

remove this define, its irrelevant and you don't use that anywhere

+static void
+isert_qp_event_callback(struct ib_event *e, void *context)
+{
+       pr_err("isert_qp_event_callback event: %d\n", e->event);
+}

To be on the safe side, when the event is IB_EVENT_COMM_EST (which means that the login request was received by the HCA before the connection was fully established), call rdma_notify (id, IB_EVENT_COMM_EST) with the id being the one pointed from qp->qp_context->isert_conn


+
+static int
+isert_query_device(struct ib_device *ib_dev, struct ib_device_attr *devattr)
+{
+       int ret;
+
+       ret = ib_query_device(ib_dev, devattr);
+       if (ret) {
+               pr_err("ib_query_device() failed: %d\n", ret);
+               return ret;
+       }
+       pr_debug("devattr->max_mr_size: 0x%016Lx\n", devattr->max_mr_size);

running user space "ibv_devinfo -v" will give the same effect... no need to dump this here, maybe
except for max_sge that you need.

+       pr_debug("devattr->page_size_cap: 0x%016Lx\n", devattr->page_size_cap);
+       pr_debug("devattr->max_qp: %d\n", devattr->max_qp);
+       pr_debug("devattr->max_qp_wr: %d\n", devattr->max_qp_wr);
+       pr_debug("devattr->device_cap_flags: 0x%08x\n", 
devattr->device_cap_flags);
+       pr_debug("devattr->max_sge: %d\n", devattr->max_sge);
+       pr_debug("devattr->max_sge_rd: %d\n", devattr->max_sge_rd);
+       pr_debug("devattr->max_cq: %d\n", devattr->max_cq);
+       pr_debug("devattr->max_cqe: %d\n", devattr->max_cqe);
+       pr_debug("devattr->max_mr: %d\n", devattr->max_mr);
+       pr_debug("devattr->max_pd: %d\n", devattr->max_pd);
+       pr_debug("devattr->max_rdd: %d\n", devattr->max_rdd);
+       pr_debug("devattr->max_mw: %d\n", devattr->max_mw);
+       pr_debug("devattr->max_srq: %d\n", devattr->max_srq);
+       pr_debug("devattr->max_srq_wr: %d\n", devattr->max_srq_wr);
+       pr_debug("devattr->max_srq_sge: %d\n", devattr->max_srq_sge);
+
+       return 0;
+}
[...]
+
+
+int
+isert_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
+{
+       int ret = 0;
+
+       pr_debug("isert_cma_handler: event %d status %d conn %p id %p\n",
+               event->event, event->status, cma_id->context, cma_id);
+
+       switch (event->event) {
+       case RDMA_CM_EVENT_CONNECT_REQUEST:
+               pr_debug("RDMA_CM_EVENT_CONNECT_REQUEST: >>>>>>>>>>>>>>>\n");
+               ret = isert_connect_request(cma_id, event);
+               break;
+       case RDMA_CM_EVENT_ESTABLISHED:
+               pr_debug("RDMA_CM_EVENT_ESTABLISHED >>>>>>>>>>>>>>\n");
+               isert_connected_handler(cma_id);
+               break;
+       case RDMA_CM_EVENT_DISCONNECTED:
+               pr_debug("RDMA_CM_EVENT_DISCONNECTED: >>>>>>>>>>>>>>\n");
+               isert_disconnected_handler(cma_id);
+               break;
+       case RDMA_CM_EVENT_DEVICE_REMOVAL:
+       case RDMA_CM_EVENT_ADDR_CHANGE:
+               break;
+       case RDMA_CM_EVENT_ADDR_ERROR:
+       case RDMA_CM_EVENT_ROUTE_ERROR:
+       case RDMA_CM_EVENT_CONNECT_ERROR:
+       default:
+               pr_err("Unknown RDMA CMA event: %d\n", event->event);
+               break;
+       }
+

ADDR_ERROR and ROUTE_ERROR you can remove from here, since you don't call rdma_resolve_addr nor rdma_resolve_route, they
will not be delivered to you.

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to