Lines Matching refs:wq

11 static struct idxd_desc *__get_desc(struct idxd_wq *wq, int idx, int cpu)  in __get_desc()  argument
14 struct idxd_device *idxd = wq->idxd; in __get_desc()
16 desc = wq->descs[idx]; in __get_desc()
29 desc->hw->int_handle = wq->id + 1; in __get_desc()
31 desc->hw->int_handle = idxd->int_handles[wq->id]; in __get_desc()
36 struct idxd_desc *idxd_alloc_desc(struct idxd_wq *wq, enum idxd_op_type optype) in idxd_alloc_desc() argument
39 struct idxd_device *idxd = wq->idxd; in idxd_alloc_desc()
47 sbq = &wq->sbq; in idxd_alloc_desc()
53 return __get_desc(wq, idx, cpu); in idxd_alloc_desc()
71 return __get_desc(wq, idx, cpu); in idxd_alloc_desc()
74 void idxd_free_desc(struct idxd_wq *wq, struct idxd_desc *desc) in idxd_free_desc() argument
79 sbitmap_queue_clear(&wq->sbq, desc->id, cpu); in idxd_free_desc()
82 static struct idxd_desc *list_abort_desc(struct idxd_wq *wq, struct idxd_irq_entry *ie, in list_abort_desc() argument
104 static void llist_abort_desc(struct idxd_wq *wq, struct idxd_irq_entry *ie, in llist_abort_desc() argument
133 found = list_abort_desc(wq, ie, desc); in llist_abort_desc()
151 int idxd_submit_desc(struct idxd_wq *wq, struct idxd_desc *desc) in idxd_submit_desc() argument
153 struct idxd_device *idxd = wq->idxd; in idxd_submit_desc()
159 idxd_free_desc(wq, desc); in idxd_submit_desc()
163 if (!percpu_ref_tryget_live(&wq->wq_active)) { in idxd_submit_desc()
164 idxd_free_desc(wq, desc); in idxd_submit_desc()
168 portal = idxd_wq_portal_addr(wq); in idxd_submit_desc()
182 ie = &idxd->irq_entries[wq->id + 1]; in idxd_submit_desc()
186 if (wq_dedicated(wq)) { in idxd_submit_desc()
197 percpu_ref_put(&wq->wq_active); in idxd_submit_desc()
200 llist_abort_desc(wq, ie, desc); in idxd_submit_desc()
202 idxd_free_desc(wq, desc); in idxd_submit_desc()
207 percpu_ref_put(&wq->wq_active); in idxd_submit_desc()