Lines Matching refs:desc

24 	struct idxd_desc *desc;  member
76 struct dsa_hw_desc desc = {}; in idxd_int_handle_revoke_drain() local
81 desc.flags = IDXD_OP_FLAG_RCI; in idxd_int_handle_revoke_drain()
82 desc.opcode = DSA_OPCODE_DRAIN; in idxd_int_handle_revoke_drain()
83 desc.priv = 1; in idxd_int_handle_revoke_drain()
86 desc.pasid = ie->pasid; in idxd_int_handle_revoke_drain()
87 desc.int_handle = ie->int_handle; in idxd_int_handle_revoke_drain()
96 iosubmit_cmds512(portal, &desc, 1); in idxd_int_handle_revoke_drain()
98 rc = idxd_enqcmds(wq, portal, &desc); in idxd_int_handle_revoke_drain()
517 struct idxd_desc *desc = irw->desc; in idxd_int_handle_resubmit_work() local
518 struct idxd_wq *wq = desc->wq; in idxd_int_handle_resubmit_work()
521 desc->completion->status = 0; in idxd_int_handle_resubmit_work()
522 rc = idxd_submit_desc(wq, desc); in idxd_int_handle_resubmit_work()
525 desc->id, wq->id); in idxd_int_handle_resubmit_work()
535 desc->completion->status = IDXD_COMP_DESC_ABORT; in idxd_int_handle_resubmit_work()
536 idxd_dma_complete_txd(desc, IDXD_COMPLETE_ABORT, false); in idxd_int_handle_resubmit_work()
538 idxd_free_desc(wq, desc); in idxd_int_handle_resubmit_work()
543 bool idxd_queue_int_handle_resubmit(struct idxd_desc *desc) in idxd_queue_int_handle_resubmit() argument
545 struct idxd_wq *wq = desc->wq; in idxd_queue_int_handle_resubmit()
553 irw->desc = desc; in idxd_queue_int_handle_resubmit()
561 struct idxd_desc *desc, *t; in irq_process_pending_llist() local
568 llist_for_each_entry_safe(desc, t, head, llnode) { in irq_process_pending_llist()
569 u8 status = desc->completion->status & DSA_COMP_STATUS_MASK; in irq_process_pending_llist()
576 if (unlikely(desc->completion->status == IDXD_COMP_DESC_ABORT)) { in irq_process_pending_llist()
577 idxd_dma_complete_txd(desc, IDXD_COMPLETE_ABORT, true); in irq_process_pending_llist()
581 idxd_dma_complete_txd(desc, IDXD_COMPLETE_NORMAL, true); in irq_process_pending_llist()
584 list_add_tail(&desc->list, in irq_process_pending_llist()
594 struct idxd_desc *desc, *n; in irq_process_work_list() local
606 list_for_each_entry_safe(desc, n, &irq_entry->work_list, list) { in irq_process_work_list()
607 if (desc->completion->status) { in irq_process_work_list()
608 list_move_tail(&desc->list, &flist); in irq_process_work_list()
614 list_for_each_entry_safe(desc, n, &flist, list) { in irq_process_work_list()
619 list_del(&desc->list); in irq_process_work_list()
621 if (unlikely(desc->completion->status == IDXD_COMP_DESC_ABORT)) { in irq_process_work_list()
622 idxd_dma_complete_txd(desc, IDXD_COMPLETE_ABORT, true); in irq_process_work_list()
626 idxd_dma_complete_txd(desc, IDXD_COMPLETE_NORMAL, true); in irq_process_work_list()