Lines Matching refs:cm_id

1013 static void cm_destroy_id(struct ib_cm_id *cm_id, int err)  in cm_destroy_id()  argument
1018 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_destroy_id()
1021 switch (cm_id->state) { in cm_destroy_id()
1036 cm_id->state = IB_CM_IDLE; in cm_destroy_id()
1053 ib_send_cm_rej(cm_id, IB_CM_REJ_TIMEOUT, in cm_destroy_id()
1065 ib_send_cm_rej(cm_id, IB_CM_REJ_CONSUMER_DEFINED, in cm_destroy_id()
1077 ib_send_cm_rej(cm_id, IB_CM_REJ_CONSUMER_DEFINED, in cm_destroy_id()
1084 ib_send_cm_dreq(cm_id, NULL, 0); in cm_destroy_id()
1093 ib_send_cm_drep(cm_id, NULL, 0); in cm_destroy_id()
1109 cm_free_id(cm_id->local_id); in cm_destroy_id()
1121 void ib_destroy_cm_id(struct ib_cm_id *cm_id) in ib_destroy_cm_id() argument
1123 cm_destroy_id(cm_id, 0); in ib_destroy_cm_id()
1140 static int __ib_cm_listen(struct ib_cm_id *cm_id, __be64 service_id, in __ib_cm_listen() argument
1152 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in __ib_cm_listen()
1153 if (cm_id->state != IB_CM_IDLE) in __ib_cm_listen()
1156 cm_id->state = IB_CM_LISTEN; in __ib_cm_listen()
1160 cm_id->service_id = cpu_to_be64(cm.listen_service_id++); in __ib_cm_listen()
1161 cm_id->service_mask = ~cpu_to_be64(0); in __ib_cm_listen()
1163 cm_id->service_id = service_id; in __ib_cm_listen()
1164 cm_id->service_mask = service_mask; in __ib_cm_listen()
1169 cm_id->state = IB_CM_IDLE; in __ib_cm_listen()
1176 int ib_cm_listen(struct ib_cm_id *cm_id, __be64 service_id, __be64 service_mask) in ib_cm_listen() argument
1182 ret = __ib_cm_listen(cm_id, service_id, service_mask); in ib_cm_listen()
1210 struct ib_cm_id *cm_id; in ib_cm_insert_listen() local
1215 cm_id = ib_create_cm_id(device, cm_handler, NULL); in ib_cm_insert_listen()
1216 if (IS_ERR(cm_id)) in ib_cm_insert_listen()
1217 return cm_id; in ib_cm_insert_listen()
1227 if (cm_id->cm_handler != cm_handler || cm_id->context) { in ib_cm_insert_listen()
1237 ib_destroy_cm_id(cm_id); in ib_cm_insert_listen()
1238 cm_id = &cm_id_priv->id; in ib_cm_insert_listen()
1239 return cm_id; in ib_cm_insert_listen()
1244 err = __ib_cm_listen(cm_id, service_id, 0); in ib_cm_insert_listen()
1249 ib_destroy_cm_id(cm_id); in ib_cm_insert_listen()
1252 return cm_id; in ib_cm_insert_listen()
1408 int ib_send_cm_req(struct ib_cm_id *cm_id, in ib_send_cm_req() argument
1421 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_req()
1423 if (cm_id->state != IB_CM_IDLE) { in ib_send_cm_req()
1448 cm_id->service_id = param->service_id; in ib_send_cm_req()
1449 cm_id->service_mask = ~cpu_to_be64(0); in ib_send_cm_req()
1481 BUG_ON(cm_id->state != IB_CM_IDLE); in ib_send_cm_req()
1482 cm_id->state = IB_CM_REQ_SENT; in ib_send_cm_req()
1850 struct ib_cm_id *cm_id; in cm_match_req() local
1880 cm_id = &cur_cm_id_priv->id; in cm_match_req()
1881 ib_send_cm_dreq(cm_id, NULL, 0); in cm_match_req()
1937 struct ib_cm_id *cm_id; in cm_req_handler() local
1946 cm_id = ib_create_cm_id(work->port->cm_dev->ib_device, NULL, NULL); in cm_req_handler()
1947 if (IS_ERR(cm_id)) in cm_req_handler()
1948 return PTR_ERR(cm_id); in cm_req_handler()
1950 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_req_handler()
1970 be32_to_cpu(cm_id->local_id)); in cm_req_handler()
2016 ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_GID, in cm_req_handler()
2019 ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_GID, in cm_req_handler()
2029 ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_ALT_GID, in cm_req_handler()
2060 ib_destroy_cm_id(cm_id); in cm_req_handler()
2094 int ib_send_cm_rep(struct ib_cm_id *cm_id, in ib_send_cm_rep() argument
2107 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_rep()
2109 if (cm_id->state != IB_CM_REQ_RCVD && in ib_send_cm_rep()
2110 cm_id->state != IB_CM_MRA_REQ_SENT) { in ib_send_cm_rep()
2112 be32_to_cpu(cm_id_priv->id.local_id), cm_id->state); in ib_send_cm_rep()
2133 cm_id->state = IB_CM_REP_SENT; in ib_send_cm_rep()
2158 int ib_send_cm_rtu(struct ib_cm_id *cm_id, in ib_send_cm_rtu() argument
2175 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_rtu()
2177 if (cm_id->state != IB_CM_REP_RCVD && in ib_send_cm_rtu()
2178 cm_id->state != IB_CM_MRA_REP_SENT) { in ib_send_cm_rtu()
2180 be32_to_cpu(cm_id->local_id), cm_id->state); in ib_send_cm_rtu()
2200 cm_id->state = IB_CM_ESTABLISHED; in ib_send_cm_rtu()
2281 struct ib_cm_id *cm_id; in cm_rep_handler() local
2344 cm_id = &cur_cm_id_priv->id; in cm_rep_handler()
2345 ib_send_cm_dreq(cm_id, NULL, 0); in cm_rep_handler()
2474 int ib_send_cm_dreq(struct ib_cm_id *cm_id, in ib_send_cm_dreq() argument
2486 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_dreq()
2488 if (cm_id->state != IB_CM_ESTABLISHED) { in ib_send_cm_dreq()
2490 be32_to_cpu(cm_id->local_id), cm_id->state); in ib_send_cm_dreq()
2495 if (cm_id->lap_state == IB_CM_LAP_SENT || in ib_send_cm_dreq()
2496 cm_id->lap_state == IB_CM_MRA_LAP_RCVD) in ib_send_cm_dreq()
2518 cm_id->state = IB_CM_DREQ_SENT; in ib_send_cm_dreq()
2538 int ib_send_cm_drep(struct ib_cm_id *cm_id, in ib_send_cm_drep() argument
2555 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_drep()
2557 if (cm_id->state != IB_CM_DREQ_RCVD) { in ib_send_cm_drep()
2561 __func__, be32_to_cpu(cm_id->local_id), cm_id->state); in ib_send_cm_drep()
2733 int ib_send_cm_rej(struct ib_cm_id *cm_id, in ib_send_cm_rej() argument
2749 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_rej()
2752 switch (cm_id->state) { in ib_send_cm_rej()
2779 be32_to_cpu(cm_id_priv->id.local_id), cm_id->state); in ib_send_cm_rej()
2911 int ib_send_cm_mra(struct ib_cm_id *cm_id, in ib_send_cm_mra() argument
2932 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_mra()
2938 lap_state = cm_id->lap_state; in ib_send_cm_mra()
2943 lap_state = cm_id->lap_state; in ib_send_cm_mra()
2947 if (cm_id->lap_state == IB_CM_LAP_RCVD) { in ib_send_cm_mra()
2948 cm_state = cm_id->state; in ib_send_cm_mra()
2975 cm_id->state = cm_state; in ib_send_cm_mra()
2976 cm_id->lap_state = lap_state; in ib_send_cm_mra()
3127 int ib_send_cm_lap(struct ib_cm_id *cm_id, in ib_send_cm_lap() argument
3140 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_lap()
3142 if (cm_id->state != IB_CM_ESTABLISHED || in ib_send_cm_lap()
3143 (cm_id->lap_state != IB_CM_LAP_UNINIT && in ib_send_cm_lap()
3144 cm_id->lap_state != IB_CM_LAP_IDLE)) { in ib_send_cm_lap()
3173 cm_id->lap_state = IB_CM_LAP_SENT; in ib_send_cm_lap()
3337 int ib_send_cm_apr(struct ib_cm_id *cm_id, in ib_send_cm_apr() argument
3353 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_apr()
3355 if (cm_id->state != IB_CM_ESTABLISHED || in ib_send_cm_apr()
3356 (cm_id->lap_state != IB_CM_LAP_RCVD && in ib_send_cm_apr()
3357 cm_id->lap_state != IB_CM_MRA_LAP_SENT)) { in ib_send_cm_apr()
3375 cm_id->lap_state = IB_CM_LAP_IDLE; in ib_send_cm_apr()
3484 int ib_send_cm_sidr_req(struct ib_cm_id *cm_id, in ib_send_cm_sidr_req() argument
3496 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_sidr_req()
3503 cm_id->service_id = param->service_id; in ib_send_cm_sidr_req()
3504 cm_id->service_mask = ~cpu_to_be64(0); in ib_send_cm_sidr_req()
3517 if (cm_id->state == IB_CM_IDLE) in ib_send_cm_sidr_req()
3527 cm_id->state = IB_CM_SIDR_REQ_SENT; in ib_send_cm_sidr_req()
3556 struct ib_cm_id *cm_id; in cm_sidr_req_handler() local
3562 cm_id = ib_create_cm_id(work->port->cm_dev->ib_device, NULL, NULL); in cm_sidr_req_handler()
3563 if (IS_ERR(cm_id)) in cm_sidr_req_handler()
3564 return PTR_ERR(cm_id); in cm_sidr_req_handler()
3565 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_sidr_req_handler()
3592 cur_cm_id_priv = cm_find_listen(cm_id->device, in cm_sidr_req_handler()
3637 int ib_send_cm_sidr_rep(struct ib_cm_id *cm_id, in ib_send_cm_sidr_rep() argument
3650 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_sidr_rep()
3652 if (cm_id->state != IB_CM_SIDR_REQ_RCVD) { in ib_send_cm_sidr_rep()
3669 cm_id->state = IB_CM_IDLE; in ib_send_cm_sidr_rep()
3880 static int cm_establish(struct ib_cm_id *cm_id) in cm_establish() argument
3888 cm_dev = ib_get_client_data(cm_id->device, &cm_client); in cm_establish()
3896 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_establish()
3898 switch (cm_id->state) in cm_establish()
3902 cm_id->state = IB_CM_ESTABLISHED; in cm_establish()
3909 be32_to_cpu(cm_id->local_id), cm_id->state); in cm_establish()
3927 work->local_id = cm_id->local_id; in cm_establish()
3928 work->remote_id = cm_id->remote_id; in cm_establish()
3946 static int cm_migrate(struct ib_cm_id *cm_id) in cm_migrate() argument
3954 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_migrate()
3956 if (cm_id->state == IB_CM_ESTABLISHED && in cm_migrate()
3957 (cm_id->lap_state == IB_CM_LAP_UNINIT || in cm_migrate()
3958 cm_id->lap_state == IB_CM_LAP_IDLE)) { in cm_migrate()
3959 cm_id->lap_state = IB_CM_LAP_IDLE; in cm_migrate()
3975 int ib_cm_notify(struct ib_cm_id *cm_id, enum ib_event_type event) in ib_cm_notify() argument
3981 ret = cm_establish(cm_id); in ib_cm_notify()
3984 ret = cm_migrate(cm_id); in ib_cm_notify()
4228 int ib_cm_init_qp_attr(struct ib_cm_id *cm_id, in ib_cm_init_qp_attr() argument
4235 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_cm_init_qp_attr()