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