/linux-4.1.27/drivers/infiniband/hw/ehca/ |
H A D | ehca_cq.c | 122 struct ehca_cq *my_cq; ehca_create_cq() local 145 my_cq = kmem_cache_zalloc(cq_cache, GFP_KERNEL); ehca_create_cq() 146 if (!my_cq) { ehca_create_cq() 155 spin_lock_init(&my_cq->spinlock); ehca_create_cq() 156 spin_lock_init(&my_cq->cb_lock); ehca_create_cq() 157 spin_lock_init(&my_cq->task_lock); ehca_create_cq() 158 atomic_set(&my_cq->nr_events, 0); ehca_create_cq() 159 init_waitqueue_head(&my_cq->wait_completion); ehca_create_cq() 161 cq = &my_cq->ib_cq; ehca_create_cq() 168 my_cq->token = idr_alloc(&ehca_cq_idr, my_cq, 0, 0x2000000, GFP_NOWAIT); ehca_create_cq() 172 if (my_cq->token < 0) { ehca_create_cq() 184 h_ret = hipz_h_alloc_resource_cq(adapter_handle, my_cq, ¶m); ehca_create_cq() 193 ipz_rc = ipz_queue_ctor(NULL, &my_cq->ipz_queue, param.act_pages, ehca_create_cq() 203 vpage = ipz_qpageit_get_inc(&my_cq->ipz_queue); ehca_create_cq() 213 my_cq->ipz_cq_handle, ehca_create_cq() 214 &my_cq->pf, ehca_create_cq() 219 my_cq->galpas. ehca_create_cq() 225 "act_pages=%i", my_cq, my_cq->cq_number, ehca_create_cq() 232 vpage = ipz_qpageit_get_inc(&my_cq->ipz_queue); ehca_create_cq() 236 "h_ret=%lli", my_cq, my_cq->cq_number, ehca_create_cq() 246 my_cq, my_cq->cq_number, ehca_create_cq() 254 ipz_qeit_reset(&my_cq->ipz_queue); ehca_create_cq() 256 gal = my_cq->galpas.kernel; ehca_create_cq() 259 my_cq, my_cq->cq_number, cqx_fec); ehca_create_cq() 261 my_cq->ib_cq.cqe = my_cq->nr_of_entries = ehca_create_cq() 263 my_cq->cq_number = (my_cq->ipz_cq_handle.handle) & 0xffff; ehca_create_cq() 266 INIT_HLIST_HEAD(&my_cq->qp_hashtab[i]); ehca_create_cq() 268 INIT_LIST_HEAD(&my_cq->sqp_err_list); ehca_create_cq() 269 INIT_LIST_HEAD(&my_cq->rqp_err_list); ehca_create_cq() 272 struct ipz_queue *ipz_queue = &my_cq->ipz_queue; ehca_create_cq() 275 resp.cq_number = my_cq->cq_number; ehca_create_cq() 276 resp.token = my_cq->token; ehca_create_cq() 283 (my_cq->galpas.user.fw_handle & (PAGE_SIZE - 1)); ehca_create_cq() 294 ipz_queue_dtor(NULL, &my_cq->ipz_queue); ehca_create_cq() 297 h_ret = hipz_h_destroy_cq(adapter_handle, my_cq, 1); ehca_create_cq() 300 "cq_num=%x h_ret=%lli", my_cq, my_cq->cq_number, h_ret); ehca_create_cq() 304 idr_remove(&ehca_cq_idr, my_cq->token); ehca_create_cq() 308 kmem_cache_free(cq_cache, my_cq); ehca_create_cq() 317 struct ehca_cq *my_cq = container_of(cq, struct ehca_cq, ib_cq); ehca_destroy_cq() local 318 int cq_num = my_cq->cq_number; ehca_destroy_cq() 326 if (my_cq->mm_count_galpa || my_cq->mm_count_queue) { ehca_destroy_cq() 328 "user space cq_num=%x", my_cq->cq_number); ehca_destroy_cq() 338 idr_remove(&ehca_cq_idr, my_cq->token); ehca_destroy_cq() 342 wait_event(my_cq->wait_completion, !atomic_read(&my_cq->nr_events)); ehca_destroy_cq() 345 h_ret = hipz_h_destroy_cq(adapter_handle, my_cq, 0); ehca_destroy_cq() 350 my_cq, cq_num, my_cq->ipz_cq_handle.handle); ehca_destroy_cq() 351 ehca_error_data(shca, my_cq, my_cq->ipz_cq_handle.handle); ehca_destroy_cq() 352 h_ret = hipz_h_destroy_cq(adapter_handle, my_cq, 1); ehca_destroy_cq() 359 "ehca_cq=%p cq_num=%x", h_ret, my_cq, cq_num); ehca_destroy_cq() 362 ipz_queue_dtor(NULL, &my_cq->ipz_queue); ehca_destroy_cq() 363 kmem_cache_free(cq_cache, my_cq); ehca_destroy_cq()
|
H A D | ehca_reqs.c | 628 struct ehca_cq *my_cq = container_of(cq, struct ehca_cq, ib_cq); ehca_poll_cq_one() local 637 ipz_qeit_get_inc_valid(&my_cq->ipz_queue); ehca_poll_cq_one() 642 "my_cq=%p cq_num=%x", my_cq, my_cq->cq_number); ehca_poll_cq_one() 655 qp = ehca_cq_get_qp(my_cq, cqe->local_qp_number); ehca_poll_cq_one() 659 my_cq->cq_number, cqe->local_qp_number); ehca_poll_cq_one() 661 my_cq->cq_number, cqe->local_qp_number); ehca_poll_cq_one() 692 is_error ? "ERROR " : "", my_cq, my_cq->cq_number); ehca_poll_cq_one() 694 my_cq, my_cq->cq_number); ehca_poll_cq_one() 697 my_cq, my_cq->cq_number); ehca_poll_cq_one() 762 cqe->optype, cqe->status, my_cq, my_cq->cq_number); ehca_poll_cq_one() 765 my_cq, my_cq->cq_number); ehca_poll_cq_one() 793 hipz_update_feca(my_cq, cqe_count); ehca_poll_cq_one() 874 struct ehca_cq *my_cq = container_of(cq, struct ehca_cq, ib_cq); ehca_poll_cq() local 884 "cq_num=%x", num_entries, my_cq, my_cq->cq_number); ehca_poll_cq() 889 spin_lock_irqsave(&my_cq->spinlock, flags); ehca_poll_cq() 892 list_for_each_entry(err_qp, &my_cq->sqp_err_list, sq_err_node) { ehca_poll_cq() 903 list_for_each_entry(err_qp, &my_cq->rqp_err_list, rq_err_node) { ehca_poll_cq() 921 spin_unlock_irqrestore(&my_cq->spinlock, flags); ehca_poll_cq() 931 struct ehca_cq *my_cq = container_of(cq, struct ehca_cq, ib_cq); ehca_req_notify_cq() local 936 hipz_set_cqx_n0(my_cq, 1); ehca_req_notify_cq() 939 hipz_set_cqx_n1(my_cq, 1); ehca_req_notify_cq() 947 spin_lock_irqsave(&my_cq->spinlock, spl_flags); ehca_req_notify_cq() 948 ret = ipz_qeit_is_valid(&my_cq->ipz_queue); ehca_req_notify_cq() 949 spin_unlock_irqrestore(&my_cq->spinlock, spl_flags); ehca_req_notify_cq()
|
/linux-4.1.27/drivers/net/ethernet/ibm/ehea/ |
H A D | ehea_hw.h | 260 static inline void ehea_reset_cq_ep(struct ehea_cq *my_cq) ehea_reset_cq_ep() argument 262 struct h_epa epa = my_cq->epas.kernel; ehea_reset_cq_ep()
|
H A D | ehea_qmr.h | 357 static inline struct ehea_cqe *ehea_poll_cq(struct ehea_cq *my_cq) ehea_poll_cq() argument 359 return hw_qeit_get_valid(&my_cq->hw_queue); ehea_poll_cq()
|