Lines Matching refs:qentry
166 struct smc_llc_qentry *qentry = flow->qentry; in smc_llc_flow_qentry_clr() local
168 flow->qentry = NULL; in smc_llc_flow_qentry_clr()
169 return qentry; in smc_llc_flow_qentry_clr()
174 struct smc_llc_qentry *qentry; in smc_llc_flow_qentry_del() local
176 if (flow->qentry) { in smc_llc_flow_qentry_del()
177 qentry = flow->qentry; in smc_llc_flow_qentry_del()
178 flow->qentry = NULL; in smc_llc_flow_qentry_del()
179 kfree(qentry); in smc_llc_flow_qentry_del()
184 struct smc_llc_qentry *qentry) in smc_llc_flow_qentry_set() argument
186 flow->qentry = qentry; in smc_llc_flow_qentry_set()
190 struct smc_llc_qentry *qentry) in smc_llc_flow_parallel() argument
192 u8 msg_type = qentry->msg.raw.hdr.common.type; in smc_llc_flow_parallel()
196 lgr->delayed_event = qentry; in smc_llc_flow_parallel()
204 qentry->msg.raw.hdr.common.type, in smc_llc_flow_parallel()
206 kfree(qentry); in smc_llc_flow_parallel()
211 struct smc_llc_qentry *qentry) in smc_llc_flow_start() argument
213 struct smc_link_group *lgr = qentry->link->lgr; in smc_llc_flow_start()
218 smc_llc_flow_parallel(lgr, flow->type, qentry); in smc_llc_flow_start()
222 switch (qentry->msg.raw.hdr.common.type) { in smc_llc_flow_start()
236 smc_llc_flow_qentry_set(flow, qentry); in smc_llc_flow_start()
300 (flow->qentry || in smc_llc_wait()
304 if (!flow->qentry || in smc_llc_wait()
309 rcv_msg = flow->qentry->msg.raw.hdr.common.type; in smc_llc_wait()
322 flow->qentry->msg.raw.hdr.flags); in smc_llc_wait()
326 return flow->qentry; in smc_llc_wait()
753 struct smc_llc_qentry *qentry; in smc_llc_cli_rkey_exchange() local
763 qentry = smc_llc_wait(lgr, NULL, SMC_LLC_WAIT_TIME, in smc_llc_cli_rkey_exchange()
765 if (!qentry) { in smc_llc_cli_rkey_exchange()
769 addc_llc = &qentry->msg.add_link_cont; in smc_llc_cli_rkey_exchange()
791 static int smc_llc_cli_add_link_reject(struct smc_llc_qentry *qentry) in smc_llc_cli_add_link_reject() argument
793 qentry->msg.raw.hdr.flags |= SMC_LLC_FLAG_RESP; in smc_llc_cli_add_link_reject()
794 qentry->msg.raw.hdr.flags |= SMC_LLC_FLAG_ADD_LNK_REJ; in smc_llc_cli_add_link_reject()
795 qentry->msg.raw.hdr.add_link_rej_rsn = SMC_LLC_REJ_RSN_NO_ALT_PATH; in smc_llc_cli_add_link_reject()
796 return smc_llc_send_message(qentry->link, &qentry->msg); in smc_llc_cli_add_link_reject()
805 struct smc_llc_qentry *qentry = NULL; in smc_llc_cli_conf_link() local
809 qentry = smc_llc_wait(lgr, NULL, SMC_LLC_WAIT_FIRST_TIME, 0); in smc_llc_cli_conf_link()
810 if (!qentry) { in smc_llc_cli_conf_link()
816 if (qentry->msg.raw.hdr.common.type != SMC_LLC_CONFIRM_LINK) { in smc_llc_cli_conf_link()
818 qentry->msg.raw.hdr.flags |= SMC_LLC_FLAG_RESP; in smc_llc_cli_conf_link()
819 smc_llc_send_message(link, &qentry->msg); in smc_llc_cli_conf_link()
823 smc_llc_save_peer_uid(qentry); in smc_llc_cli_conf_link()
868 int smc_llc_cli_add_link(struct smc_link *link, struct smc_llc_qentry *qentry) in smc_llc_cli_add_link() argument
870 struct smc_llc_msg_add_link *llc = &qentry->msg.add_link; in smc_llc_cli_add_link()
929 smc_llc_cli_add_link_reject(qentry); in smc_llc_cli_add_link()
931 kfree(qentry); in smc_llc_cli_add_link()
937 struct smc_llc_qentry *qentry) in smc_llc_cli_add_link_invite() argument
954 kfree(qentry); in smc_llc_cli_add_link_invite()
977 struct smc_llc_qentry *qentry; in smc_llc_process_cli_add_link() local
979 qentry = smc_llc_flow_qentry_clr(&lgr->llc_flow_lcl); in smc_llc_process_cli_add_link()
982 if (smc_llc_is_local_add_link(&qentry->msg)) in smc_llc_process_cli_add_link()
983 smc_llc_cli_add_link_invite(qentry->link, qentry); in smc_llc_process_cli_add_link()
985 smc_llc_cli_add_link(qentry->link, qentry); in smc_llc_process_cli_add_link()
1049 struct smc_llc_qentry *qentry; in smc_llc_delete_asym_link() local
1069 qentry = smc_llc_wait(lgr, lnk_new, SMC_LLC_WAIT_TIME, in smc_llc_delete_asym_link()
1071 if (!qentry) { in smc_llc_delete_asym_link()
1086 struct smc_llc_qentry *qentry = NULL; in smc_llc_srv_rkey_exchange() local
1098 qentry = smc_llc_wait(lgr, link, SMC_LLC_WAIT_TIME, in smc_llc_srv_rkey_exchange()
1100 if (!qentry) { in smc_llc_srv_rkey_exchange()
1104 addc_llc = &qentry->msg.add_link_cont; in smc_llc_srv_rkey_exchange()
1126 struct smc_llc_qentry *qentry = NULL; in smc_llc_srv_conf_link() local
1134 qentry = smc_llc_wait(lgr, link, SMC_LLC_WAIT_FIRST_TIME, 0); in smc_llc_srv_conf_link()
1135 if (!qentry || in smc_llc_srv_conf_link()
1136 qentry->msg.raw.hdr.common.type != SMC_LLC_CONFIRM_LINK) { in smc_llc_srv_conf_link()
1140 if (qentry) in smc_llc_srv_conf_link()
1144 smc_llc_save_peer_uid(qentry); in smc_llc_srv_conf_link()
1160 struct smc_llc_qentry *qentry = NULL; in smc_llc_srv_add_link() local
1187 qentry = smc_llc_wait(lgr, link, SMC_LLC_WAIT_TIME, SMC_LLC_ADD_LINK); in smc_llc_srv_add_link()
1188 if (!qentry) { in smc_llc_srv_add_link()
1192 add_llc = &qentry->msg.add_link; in smc_llc_srv_add_link()
1230 struct smc_link *link = lgr->llc_flow_lcl.qentry->link; in smc_llc_process_srv_add_link()
1294 struct smc_llc_qentry *qentry; in smc_llc_process_cli_delete_link() local
1298 qentry = smc_llc_flow_qentry_clr(&lgr->llc_flow_lcl); in smc_llc_process_cli_delete_link()
1299 lnk = qentry->link; in smc_llc_process_cli_delete_link()
1300 del_llc = &qentry->msg.delete_link; in smc_llc_process_cli_delete_link()
1318 smc_llc_send_message(lnk, &qentry->msg); in smc_llc_process_cli_delete_link()
1324 smc_llc_send_message(lnk, &qentry->msg); /* response */ in smc_llc_process_cli_delete_link()
1342 kfree(qentry); in smc_llc_process_cli_delete_link()
1372 struct smc_llc_qentry *qentry; in smc_llc_process_srv_delete_link() local
1377 qentry = smc_llc_flow_qentry_clr(&lgr->llc_flow_lcl); in smc_llc_process_srv_delete_link()
1378 lnk = qentry->link; in smc_llc_process_srv_delete_link()
1379 del_llc = &qentry->msg.delete_link; in smc_llc_process_srv_delete_link()
1381 if (qentry->msg.delete_link.hd.flags & SMC_LLC_FLAG_DEL_LINK_ALL) { in smc_llc_process_srv_delete_link()
1384 qentry->msg.delete_link.reason)); in smc_llc_process_srv_delete_link()
1408 if (!smc_llc_send_message(lnk, &qentry->msg)) { in smc_llc_process_srv_delete_link()
1433 kfree(qentry); in smc_llc_process_srv_delete_link()
1459 struct smc_llc_qentry *qentry; in smc_llc_rmt_conf_rkey() local
1465 qentry = lgr->llc_flow_rmt.qentry; in smc_llc_rmt_conf_rkey()
1466 llc = &qentry->msg.confirm_rkey; in smc_llc_rmt_conf_rkey()
1467 link = qentry->link; in smc_llc_rmt_conf_rkey()
1488 smc_llc_send_message(link, &qentry->msg); in smc_llc_rmt_conf_rkey()
1496 struct smc_llc_qentry *qentry; in smc_llc_rmt_delete_rkey() local
1501 qentry = lgr->llc_flow_rmt.qentry; in smc_llc_rmt_delete_rkey()
1502 llc = &qentry->msg.delete_rkey; in smc_llc_rmt_delete_rkey()
1503 link = qentry->link; in smc_llc_rmt_delete_rkey()
1515 smc_llc_send_message(link, &qentry->msg); in smc_llc_rmt_delete_rkey()
1530 struct smc_llc_qentry *qentry, *q; in smc_llc_event_flush() local
1533 list_for_each_entry_safe(qentry, q, &lgr->llc_event_q, list) { in smc_llc_event_flush()
1534 list_del_init(&qentry->list); in smc_llc_event_flush()
1535 kfree(qentry); in smc_llc_event_flush()
1540 static void smc_llc_event_handler(struct smc_llc_qentry *qentry) in smc_llc_event_handler() argument
1542 union smc_llc_msg *llc = &qentry->msg; in smc_llc_event_handler()
1543 struct smc_link *link = qentry->link; in smc_llc_event_handler()
1563 qentry)) { in smc_llc_event_handler()
1569 !lgr->llc_flow_lcl.qentry) { in smc_llc_event_handler()
1572 qentry); in smc_llc_event_handler()
1575 qentry)) { in smc_llc_event_handler()
1578 } else if (smc_llc_flow_start(&lgr->llc_flow_lcl, qentry)) { in smc_llc_event_handler()
1587 smc_llc_flow_qentry_set(&lgr->llc_flow_lcl, qentry); in smc_llc_event_handler()
1594 !lgr->llc_flow_lcl.qentry) { in smc_llc_event_handler()
1596 smc_llc_flow_qentry_set(&lgr->llc_flow_lcl, qentry); in smc_llc_event_handler()
1598 } else if (smc_llc_flow_start(&lgr->llc_flow_lcl, qentry)) { in smc_llc_event_handler()
1604 if (smc_llc_flow_start(&lgr->llc_flow_rmt, qentry)) { in smc_llc_event_handler()
1617 if (smc_llc_flow_start(&lgr->llc_flow_rmt, qentry)) { in smc_llc_event_handler()
1628 kfree(qentry); in smc_llc_event_handler()
1636 struct smc_llc_qentry *qentry; in smc_llc_event_work() local
1639 qentry = lgr->delayed_event; in smc_llc_event_work()
1641 if (smc_link_usable(qentry->link)) in smc_llc_event_work()
1642 smc_llc_event_handler(qentry); in smc_llc_event_work()
1644 kfree(qentry); in smc_llc_event_work()
1650 qentry = list_first_entry(&lgr->llc_event_q, in smc_llc_event_work()
1652 list_del_init(&qentry->list); in smc_llc_event_work()
1654 smc_llc_event_handler(qentry); in smc_llc_event_work()
1662 struct smc_llc_qentry *qentry) in smc_llc_rx_response() argument
1666 u8 llc_type = qentry->msg.raw.hdr.common.type; in smc_llc_rx_response()
1676 if (flowtype != SMC_LLC_FLOW_ADD_LINK || flow->qentry) in smc_llc_rx_response()
1680 if (flowtype != SMC_LLC_FLOW_DEL_LINK || flow->qentry) in smc_llc_rx_response()
1685 if (flowtype != SMC_LLC_FLOW_RKEY || flow->qentry) in smc_llc_rx_response()
1695 kfree(qentry); in smc_llc_rx_response()
1699 smc_llc_flow_qentry_set(&link->lgr->llc_flow_lcl, qentry); in smc_llc_rx_response()
1706 struct smc_llc_qentry *qentry; in smc_llc_enqueue() local
1709 qentry = kmalloc(sizeof(*qentry), GFP_ATOMIC); in smc_llc_enqueue()
1710 if (!qentry) in smc_llc_enqueue()
1712 qentry->link = link; in smc_llc_enqueue()
1713 INIT_LIST_HEAD(&qentry->list); in smc_llc_enqueue()
1714 memcpy(&qentry->msg, llc, sizeof(union smc_llc_msg)); in smc_llc_enqueue()
1718 smc_llc_rx_response(link, qentry); in smc_llc_enqueue()
1724 list_add_tail(&qentry->list, &lgr->llc_event_q); in smc_llc_enqueue()
1850 struct smc_llc_qentry *qentry = NULL; in smc_llc_do_confirm_rkey() local
1857 qentry = smc_llc_wait(lgr, send_link, SMC_LLC_WAIT_TIME, in smc_llc_do_confirm_rkey()
1859 if (!qentry || (qentry->msg.raw.hdr.flags & SMC_LLC_FLAG_RKEY_NEG)) in smc_llc_do_confirm_rkey()
1862 if (qentry) in smc_llc_do_confirm_rkey()
1871 struct smc_llc_qentry *qentry = NULL; in smc_llc_do_delete_rkey() local
1884 qentry = smc_llc_wait(lgr, send_link, SMC_LLC_WAIT_TIME, in smc_llc_do_delete_rkey()
1886 if (!qentry || (qentry->msg.raw.hdr.flags & SMC_LLC_FLAG_RKEY_NEG)) in smc_llc_do_delete_rkey()
1889 if (qentry) in smc_llc_do_delete_rkey()
1903 void smc_llc_save_peer_uid(struct smc_llc_qentry *qentry) in smc_llc_save_peer_uid() argument
1905 memcpy(qentry->link->peer_link_uid, qentry->msg.confirm_link.link_uid, in smc_llc_save_peer_uid()
1910 int smc_llc_eval_conf_link(struct smc_llc_qentry *qentry, in smc_llc_eval_conf_link() argument
1914 qentry->link->link_id = qentry->msg.confirm_link.link_num; in smc_llc_eval_conf_link()
1915 smc_llc_link_set_uid(qentry->link); in smc_llc_eval_conf_link()
1917 if (!(qentry->msg.raw.hdr.flags & SMC_LLC_FLAG_NO_RMBE_EYEC)) in smc_llc_eval_conf_link()