Lines Matching refs:pd
127 static int alloc_small_queue_page(struct ipz_queue *queue, struct ehca_pd *pd) in alloc_small_queue_page() argument
133 mutex_lock(&pd->lock); in alloc_small_queue_page()
135 if (!list_empty(&pd->free[order])) in alloc_small_queue_page()
136 page = list_entry(pd->free[order].next, in alloc_small_queue_page()
149 list_add(&page->list, &pd->free[order]); in alloc_small_queue_page()
157 list_move(&page->list, &pd->full[order]); in alloc_small_queue_page()
159 mutex_unlock(&pd->lock); in alloc_small_queue_page()
167 ehca_err(pd->ib_pd.device, "failed to allocate small queue page"); in alloc_small_queue_page()
168 mutex_unlock(&pd->lock); in alloc_small_queue_page()
172 static void free_small_queue_page(struct ipz_queue *queue, struct ehca_pd *pd) in free_small_queue_page() argument
182 mutex_lock(&pd->lock); in free_small_queue_page()
194 list_move_tail(&page->list, &pd->free[order]); in free_small_queue_page()
196 mutex_unlock(&pd->lock); in free_small_queue_page()
204 int ipz_queue_ctor(struct ehca_pd *pd, struct ipz_queue *queue, in ipz_queue_ctor() argument
237 if (!alloc_small_queue_page(queue, pd)) in ipz_queue_ctor()
256 int ipz_queue_dtor(struct ehca_pd *pd, struct ipz_queue *queue) in ipz_queue_dtor() argument
266 free_small_queue_page(queue, pd); in ipz_queue_dtor()