Lines Matching refs:qp
357 static int ehea_qp_alloc_register(struct ehea_qp *qp, struct hw_queue *hw_queue,
378 qp->fw_handle, rpage, 1);
402 struct ehea_qp *qp;
407 qp = kzalloc(sizeof(*qp), GFP_KERNEL);
408 if (!qp)
411 qp->adapter = adapter;
414 &qp->fw_handle, &qp->epas);
425 ret = ehea_qp_alloc_register(qp, &qp->hw_squeue, init_attr->nr_sq_pages,
434 ret = ehea_qp_alloc_register(qp, &qp->hw_rqueue1,
445 ret = ehea_qp_alloc_register(qp, &qp->hw_rqueue2,
457 ret = ehea_qp_alloc_register(qp, &qp->hw_rqueue3,
468 qp->init_attr = *init_attr;
470 return qp;
473 hw_queue_dtor(&qp->hw_rqueue2);
476 hw_queue_dtor(&qp->hw_rqueue1);
479 hw_queue_dtor(&qp->hw_squeue);
482 ehea_h_disable_and_get_hea(adapter->handle, qp->fw_handle);
483 ehea_h_free_resource(adapter->handle, qp->fw_handle, FORCE_FREE);
486 kfree(qp);
490 static u64 ehea_destroy_qp_res(struct ehea_qp *qp, u64 force)
493 struct ehea_qp_init_attr *qp_attr = &qp->init_attr;
496 ehea_h_disable_and_get_hea(qp->adapter->handle, qp->fw_handle);
497 hret = ehea_h_free_resource(qp->adapter->handle, qp->fw_handle, force);
501 hw_queue_dtor(&qp->hw_squeue);
502 hw_queue_dtor(&qp->hw_rqueue1);
505 hw_queue_dtor(&qp->hw_rqueue2);
507 hw_queue_dtor(&qp->hw_rqueue3);
508 kfree(qp);
513 int ehea_destroy_qp(struct ehea_qp *qp)
516 if (!qp)
519 hcp_epas_dtor(&qp->epas);
521 hret = ehea_destroy_qp_res(qp, NORMAL_FREE);
523 ehea_error_data(qp->adapter, qp->fw_handle, &aer, &aerr);
524 hret = ehea_destroy_qp_res(qp, FORCE_FREE);