Lines Matching defs:cqp_request

432 	struct irdma_cqp_request *cqp_request = NULL;
437 cqp_request = list_first_entry(&cqp->cqp_avail_reqs,
439 list_del_init(&cqp_request->list);
442 if (!cqp_request) {
443 cqp_request = kzalloc(sizeof(*cqp_request), GFP_ATOMIC);
444 if (cqp_request) {
445 cqp_request->dynamic = true;
447 init_waitqueue_head(&cqp_request->waitq);
450 if (!cqp_request) {
455 cqp_request->waiting = wait;
456 refcount_set(&cqp_request->refcnt, 1);
457 memset(&cqp_request->compl_info, 0, sizeof(cqp_request->compl_info));
459 return cqp_request;
463 * irdma_get_cqp_request - increase refcount for cqp_request
464 * @cqp_request: pointer to cqp_request instance
466 static inline void irdma_get_cqp_request(struct irdma_cqp_request *cqp_request)
468 refcount_inc(&cqp_request->refcnt);
474 * @cqp_request: to be put back in cqp list
477 struct irdma_cqp_request *cqp_request)
481 if (cqp_request->dynamic) {
482 kfree(cqp_request);
484 WRITE_ONCE(cqp_request->request_done, false);
485 cqp_request->callback_fcn = NULL;
486 cqp_request->waiting = false;
489 list_add_tail(&cqp_request->list, &cqp->cqp_avail_reqs);
498 * @cqp_request: to be put back in cqp list
501 struct irdma_cqp_request *cqp_request)
503 if (refcount_dec_and_test(&cqp_request->refcnt))
504 irdma_free_cqp_request(cqp, cqp_request);
510 * @cqp_request: to be put back in cqp list
514 struct irdma_cqp_request *cqp_request)
516 if (cqp_request->waiting) {
517 cqp_request->compl_info.error = true;
518 WRITE_ONCE(cqp_request->request_done, true);
519 wake_up(&cqp_request->waitq);
522 refcount_read(&cqp_request->refcnt) == 1, 1000);
523 irdma_put_cqp_request(cqp, cqp_request);
535 struct irdma_cqp_request *cqp_request = NULL;
542 cqp_request = (struct irdma_cqp_request *)(unsigned long)
544 if (cqp_request)
545 irdma_free_pending_cqp_request(cqp, cqp_request);
551 cqp_request =
553 if (cqp_request)
554 irdma_free_pending_cqp_request(cqp, cqp_request);
561 * @cqp_request: cqp request to wait
564 struct irdma_cqp_request *cqp_request)
573 if (wait_event_timeout(cqp_request->waitq,
574 READ_ONCE(cqp_request->request_done),
590 cqp_error = cqp_request->compl_info.error;
593 if (cqp_request->compl_info.maj_err_code == 0xFFFF) {
594 if (cqp_request->compl_info.min_err_code == 0x8002)
596 else if (cqp_request->compl_info.min_err_code == 0x8029) {
694 * @cqp_request: cqp request to process
697 struct irdma_cqp_request *cqp_request)
700 struct cqp_cmds_info *info = &cqp_request->info;
707 irdma_get_cqp_request(cqp_request);
712 if (cqp_request->waiting) {
714 status = irdma_wait_event(rf, cqp_request);
723 cqp_request->compl_info.maj_err_code,
724 cqp_request->compl_info.min_err_code))
727 irdma_cqp_cmd_names[info->cqp_cmd], info->cqp_cmd, status, cqp_request->waiting,
728 cqp_request->compl_info.error, cqp_request->compl_info.maj_err_code,
729 cqp_request->compl_info.min_err_code);
732 irdma_put_cqp_request(&rf->cqp, cqp_request);
835 struct irdma_cqp_request *cqp_request;
840 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, true);
841 if (!cqp_request)
844 cqp_info = &cqp_request->info;
850 cqp_info->in.u.update_pe_sds.scratch = (uintptr_t)cqp_request;
852 status = irdma_handle_cqp_op(rf, cqp_request);
853 irdma_put_cqp_request(&rf->cqp, cqp_request);
866 struct irdma_cqp_request *cqp_request;
872 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, false);
873 if (!cqp_request)
876 cqp_info = &cqp_request->info;
880 cqp_info->in.u.suspend_resume.scratch = (uintptr_t)cqp_request;
882 status = irdma_handle_cqp_op(rf, cqp_request);
883 irdma_put_cqp_request(&rf->cqp, cqp_request);
983 struct irdma_cqp_request *cqp_request;
988 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, true);
989 if (!cqp_request)
992 cqp_info = &cqp_request->info;
993 cqp_request->param = NULL;
1000 cqp_info->in.u.query_fpm_val.scratch = (uintptr_t)cqp_request;
1002 status = irdma_handle_cqp_op(rf, cqp_request);
1003 irdma_put_cqp_request(&rf->cqp, cqp_request);
1017 struct irdma_cqp_request *cqp_request;
1022 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, true);
1023 if (!cqp_request)
1026 cqp_info = &cqp_request->info;
1027 cqp_request->param = NULL;
1034 cqp_info->in.u.commit_fpm_val.scratch = (uintptr_t)cqp_request;
1036 status = irdma_handle_cqp_op(rf, cqp_request);
1037 irdma_put_cqp_request(&rf->cqp, cqp_request);
1051 struct irdma_cqp_request *cqp_request;
1055 cqp_request = irdma_alloc_and_get_cqp_request(iwcqp, true);
1056 if (!cqp_request)
1059 cqp_info = &cqp_request->info;
1063 cqp_info->in.u.cq_create.scratch = (uintptr_t)cqp_request;
1065 status = irdma_handle_cqp_op(rf, cqp_request);
1066 irdma_put_cqp_request(iwcqp, cqp_request);
1080 struct irdma_cqp_request *cqp_request;
1085 cqp_request = irdma_alloc_and_get_cqp_request(iwcqp, true);
1086 if (!cqp_request)
1089 cqp_info = &cqp_request->info;
1090 qp_info = &cqp_request->info.in.u.qp_create.info;
1097 cqp_info->in.u.qp_create.scratch = (uintptr_t)cqp_request;
1099 status = irdma_handle_cqp_op(rf, cqp_request);
1100 irdma_put_cqp_request(iwcqp, cqp_request);
1113 struct irdma_cqp_request *cqp_request;
1120 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, false);
1121 if (!cqp_request)
1124 cqp_info = &cqp_request->info;
1132 cqp_info->in.u.manage_push_page.scratch = (uintptr_t)cqp_request;
1133 status = irdma_handle_cqp_op(rf, cqp_request);
1136 irdma_put_cqp_request(&rf->cqp, cqp_request);
1176 struct irdma_cqp_request *cqp_request;
1179 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, true);
1180 if (!cqp_request)
1183 cqp_info = &cqp_request->info;
1187 cqp_info->in.u.cq_destroy.scratch = (uintptr_t)cqp_request;
1189 irdma_handle_cqp_op(rf, cqp_request);
1190 irdma_put_cqp_request(&rf->cqp, cqp_request);
1195 * @cqp_request: modify QP completion
1197 static void irdma_hw_modify_qp_callback(struct irdma_cqp_request *cqp_request)
1202 cqp_info = &cqp_request->info;
1220 struct irdma_cqp_request *cqp_request;
1224 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, wait);
1225 if (!cqp_request)
1229 cqp_request->callback_fcn = irdma_hw_modify_qp_callback;
1232 cqp_info = &cqp_request->info;
1238 cqp_info->in.u.qp_modify.scratch = (uintptr_t)cqp_request;
1239 status = irdma_handle_cqp_op(rf, cqp_request);
1240 irdma_put_cqp_request(&rf->cqp, cqp_request);
1261 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp,
1263 if (!cqp_request)
1266 cqp_info = &cqp_request->info;
1272 cqp_info->in.u.qp_modify.scratch = (uintptr_t)cqp_request;
1275 irdma_handle_cqp_op(rf, cqp_request);
1276 irdma_put_cqp_request(&rf->cqp, cqp_request);
1309 struct irdma_cqp_request *cqp_request;
1313 cqp_request = irdma_alloc_and_get_cqp_request(iwcqp, true);
1314 if (!cqp_request)
1317 cqp_info = &cqp_request->info;
1322 cqp_info->in.u.qp_destroy.scratch = (uintptr_t)cqp_request;
1325 status = irdma_handle_cqp_op(rf, cqp_request);
1326 irdma_put_cqp_request(&rf->cqp, cqp_request);
1742 * @cqp_request: cqp_request structure pointer
1744 static void irdma_process_cqp_stats(struct irdma_cqp_request *cqp_request)
1746 struct irdma_vsi_pestat *pestat = cqp_request->param;
1763 struct irdma_cqp_request *cqp_request;
1767 cqp_request = irdma_alloc_and_get_cqp_request(iwcqp, wait);
1768 if (!cqp_request)
1771 cqp_info = &cqp_request->info;
1776 cqp_info->in.u.stats_gather.scratch = (uintptr_t)cqp_request;
1778 cqp_request->param = pestat;
1780 cqp_request->callback_fcn = irdma_process_cqp_stats;
1781 status = irdma_handle_cqp_op(rf, cqp_request);
1784 irdma_put_cqp_request(&rf->cqp, cqp_request);
1800 struct irdma_cqp_request *cqp_request;
1807 cqp_request = irdma_alloc_and_get_cqp_request(iwcqp, wait);
1808 if (!cqp_request)
1811 cqp_info = &cqp_request->info;
1816 cqp_info->in.u.stats_manage.scratch = (uintptr_t)cqp_request;
1818 status = irdma_handle_cqp_op(rf, cqp_request);
1820 stats_info->stats_idx = cqp_request->compl_info.op_ret_val;
1821 irdma_put_cqp_request(iwcqp, cqp_request);
1835 struct irdma_cqp_request *cqp_request;
1840 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, true);
1841 if (!cqp_request)
1844 cqp_info = &cqp_request->info;
1848 cqp_info->in.u.ceq_create.scratch = (uintptr_t)cqp_request;
1850 status = irdma_handle_cqp_op(rf, cqp_request);
1851 irdma_put_cqp_request(&rf->cqp, cqp_request);
1865 struct irdma_cqp_request *cqp_request;
1870 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, true);
1871 if (!cqp_request)
1874 cqp_info = &cqp_request->info;
1878 cqp_info->in.u.aeq_create.scratch = (uintptr_t)cqp_request;
1880 status = irdma_handle_cqp_op(rf, cqp_request);
1881 irdma_put_cqp_request(&rf->cqp, cqp_request);
1898 struct irdma_cqp_request *cqp_request;
1908 cqp_request = irdma_alloc_and_get_cqp_request(iwcqp, !poll);
1909 if (!cqp_request)
1912 cqp_info = &cqp_request->info;
1918 cqp_info->in.u.ws_node.scratch = (uintptr_t)cqp_request;
1919 status = irdma_handle_cqp_op(rf, cqp_request);
1932 node_info->qs_handle = cqp_request->compl_info.op_ret_val;
1936 irdma_put_cqp_request(&rf->cqp, cqp_request);
1957 struct irdma_cqp_request *cqp_request;
1964 cqp_request = irdma_alloc_and_get_cqp_request(&rf->cqp, wait);
1965 if (!cqp_request)
1968 cqp_info = &cqp_request->info;
1973 cqp_info->in.u.ah_create.scratch = (uintptr_t)cqp_request;
1977 cqp_info->in.u.ah_destroy.scratch = (uintptr_t)cqp_request;
1982 cqp_request->callback_fcn = callback_fcn;
1983 cqp_request->param = cb_param;
1985 status = irdma_handle_cqp_op(rf, cqp_request);
1986 irdma_put_cqp_request(&rf->cqp, cqp_request);
1999 * @cqp_request: pointer to cqp_request of create AH
2001 static void irdma_ieq_ah_cb(struct irdma_cqp_request *cqp_request)
2003 struct irdma_sc_qp *qp = cqp_request->param;
2008 if (!cqp_request->compl_info.op_ret_val) {
2020 * @cqp_request: pointer to cqp_request of create AH
2022 static void irdma_ilq_ah_cb(struct irdma_cqp_request *cqp_request)
2024 struct irdma_cm_node *cm_node = cqp_request->param;
2027 sc_ah->ah_info.ah_valid = !cqp_request->compl_info.op_ret_val;
2104 * @cqp_request: pointer to cqp_request of create AH
2106 void irdma_gsi_ud_qp_ah_cb(struct irdma_cqp_request *cqp_request)
2108 struct irdma_sc_ah *sc_ah = cqp_request->param;
2110 if (!cqp_request->compl_info.op_ret_val)