From 5b4f387943a9f43f1742161b05eba16a7690991e Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Fri, 9 Jul 2021 03:15:30 +0000 Subject: [PATCH 1/2] isert-scst: Minimize diffs with upstream Move the isert_cm_disconnect_handler() definition, pass the event type to isert_cm_evt_listener_handler() instead of the struct rdma_cm_event pointer and change the return value of isert_cm_evt_listener_handler() from 0 / -EINVAL into -1. Signed-off-by: Chesnokov Gleb [ bvanassche: made the patch description more detailed ] git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9473 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- iscsi-scst/kernel/isert-scst/iser_rdma.c | 39 +++++++++++------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/iscsi-scst/kernel/isert-scst/iser_rdma.c b/iscsi-scst/kernel/isert-scst/iser_rdma.c index d4ac072bf..ba62686d9 100644 --- a/iscsi-scst/kernel/isert-scst/iser_rdma.c +++ b/iscsi-scst/kernel/isert-scst/iser_rdma.c @@ -1625,16 +1625,6 @@ out: return ret; } -static int isert_cm_disconnect_handler(struct rdma_cm_id *cm_id, - struct rdma_cm_event *event) -{ - struct isert_connection *isert_conn = cm_id->qp->qp_context; - - isert_conn_disconnect(isert_conn); - - return 0; -} - static const char *cm_event_type_str(enum rdma_cm_event_type ev_type) { switch (ev_type) { @@ -1682,28 +1672,33 @@ static int isert_handle_failure(struct isert_connection *conn) } static int isert_cm_evt_listener_handler(struct rdma_cm_id *cm_id, - struct rdma_cm_event *cm_ev) + enum rdma_cm_event_type event) { - enum rdma_cm_event_type ev_type; struct isert_portal *portal; - int err = 0; - ev_type = cm_ev->event; portal = cm_id->context; - switch (ev_type) { + switch (event) { case RDMA_CM_EVENT_DEVICE_REMOVAL: portal->cm_id = NULL; - err = -EINVAL; break; - default: PRINT_INFO("Listener event:%s(%d), ignored", - cm_event_type_str(ev_type), ev_type); + cm_event_type_str(event), event); break; } - return err; + return -1; +} + +static int isert_cm_disconnect_handler(struct rdma_cm_id *cm_id, + enum rdma_cm_event_type event) +{ + struct isert_connection *isert_conn = cm_id->qp->qp_context; + + isert_conn_disconnect(isert_conn); + + return 0; } static int isert_cm_evt_handler(struct rdma_cm_id *cm_id, @@ -1722,7 +1717,7 @@ static int isert_cm_evt_handler(struct rdma_cm_id *cm_id, portal, cm_id); if (portal->cm_id == cm_id) { - err = isert_cm_evt_listener_handler(cm_id, cm_ev); + err = isert_cm_evt_listener_handler(cm_id, ev_type); goto out; } @@ -1739,14 +1734,14 @@ static int isert_cm_evt_handler(struct rdma_cm_id *cm_id, case RDMA_CM_EVENT_CONNECT_ERROR: case RDMA_CM_EVENT_REJECTED: - err = isert_cm_disconnect_handler(cm_id, cm_ev); + err = isert_cm_disconnect_handler(cm_id, ev_type); break; case RDMA_CM_EVENT_ADDR_CHANGE: case RDMA_CM_EVENT_DISCONNECTED: case RDMA_CM_EVENT_DEVICE_REMOVAL: case RDMA_CM_EVENT_TIMEWAIT_EXIT: - isert_cm_disconnect_handler(cm_id, cm_ev); + isert_cm_disconnect_handler(cm_id, ev_type); err = isert_cm_disconnected_handler(cm_id, cm_ev); break; From 8019c8cd3d561bc217844beff40875cdaa0544ed Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Fri, 9 Jul 2021 03:30:28 +0000 Subject: [PATCH 2/2] isert-scst: Simplify the code that reports that a connection has been accepted git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9474 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- iscsi-scst/kernel/isert-scst/iser_rdma.c | 32 ++---------------------- 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/iscsi-scst/kernel/isert-scst/iser_rdma.c b/iscsi-scst/kernel/isert-scst/iser_rdma.c index ba62686d9..d3d96ab71 100644 --- a/iscsi-scst/kernel/isert-scst/iser_rdma.c +++ b/iscsi-scst/kernel/isert-scst/iser_rdma.c @@ -1525,36 +1525,8 @@ static int isert_cm_conn_req_handler(struct rdma_cm_id *cm_id, goto fail_accept; } - switch (isert_conn->peer_addr.ss_family) { - case AF_INET: -#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) - PRINT_INFO("iser accepted connection cm_id:%p " - NIPQUAD_FMT "->" NIPQUAD_FMT, cm_id, - NIPQUAD(((struct sockaddr_in *)&isert_conn->peer_addr)->sin_addr.s_addr), - NIPQUAD(((struct sockaddr_in *)&isert_conn->self_addr)->sin_addr.s_addr)); -#else - PRINT_INFO("iser accepted connection cm_id:%p %pI4->%pI4", - cm_id, - &((struct sockaddr_in *)&isert_conn->peer_addr)->sin_addr.s_addr, - &((struct sockaddr_in *)&isert_conn->self_addr)->sin_addr.s_addr); -#endif - break; - case AF_INET6: -#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) - PRINT_INFO("iser accepted connection cm_id:%p " - NIP6_FMT "->" NIP6_FMT, cm_id, - NIP6(((struct sockaddr_in6 *)&isert_conn->peer_addr)->sin6_addr), - NIP6(((struct sockaddr_in6 *)&isert_conn->self_addr)->sin6_addr)); -#else - PRINT_INFO("iser accepted connection cm_id:%p %pI6->%pI6", - cm_id, - &((struct sockaddr_in6 *)&isert_conn->peer_addr)->sin6_addr, - &((struct sockaddr_in6 *)&isert_conn->self_addr)->sin6_addr); -#endif - break; - default: - PRINT_INFO("iser accepted connection cm_id:%p", cm_id); - } + PRINT_INFO("iser accepted connection cm_id:%p %pISpc->%pISpc", + cm_id, &isert_conn->peer_addr, &isert_conn->self_addr); mutex_lock(&dev_list_mutex); list_add_tail(&isert_conn->portal_node, &portal->conn_list);