Lines Matching refs:wq
33 struct idxd_wq *wq; member
42 struct idxd_wq *wq = idxd_cdev->wq; in idxd_cdev_dev_release() local
44 cdev_ctx = &ictx[wq->idxd->type]; in idxd_cdev_dev_release()
65 return idxd_cdev->wq; in inode_wq()
72 struct idxd_wq *wq; in idxd_cdev_open() local
76 wq = inode_wq(inode); in idxd_cdev_open()
77 idxd = wq->idxd; in idxd_cdev_open()
80 dev_dbg(dev, "%s called: %d\n", __func__, idxd_wq_refcount(wq)); in idxd_cdev_open()
86 mutex_lock(&wq->wq_lock); in idxd_cdev_open()
88 if (idxd_wq_refcount(wq) > 0 && wq_dedicated(wq)) { in idxd_cdev_open()
93 ctx->wq = wq; in idxd_cdev_open()
95 idxd_wq_get(wq); in idxd_cdev_open()
96 mutex_unlock(&wq->wq_lock); in idxd_cdev_open()
100 mutex_unlock(&wq->wq_lock); in idxd_cdev_open()
108 struct idxd_wq *wq = ctx->wq; in idxd_cdev_release() local
109 struct idxd_device *idxd = wq->idxd; in idxd_cdev_release()
116 idxd_wq_drain(wq); in idxd_cdev_release()
119 mutex_lock(&wq->wq_lock); in idxd_cdev_release()
120 idxd_wq_put(wq); in idxd_cdev_release()
121 mutex_unlock(&wq->wq_lock); in idxd_cdev_release()
125 static int check_vma(struct idxd_wq *wq, struct vm_area_struct *vma, in check_vma() argument
128 struct device *dev = &wq->idxd->pdev->dev; in check_vma()
144 struct idxd_wq *wq = ctx->wq; in idxd_cdev_mmap() local
145 struct idxd_device *idxd = wq->idxd; in idxd_cdev_mmap()
152 rc = check_vma(wq, vma, __func__); in idxd_cdev_mmap()
157 pfn = (base + idxd_get_wq_portal_full_offset(wq->id, in idxd_cdev_mmap()
170 struct idxd_wq *wq = ctx->wq; in idxd_cdev_poll() local
171 struct idxd_device *idxd = wq->idxd; in idxd_cdev_poll()
175 poll_wait(filp, &wq->err_queue, wait); in idxd_cdev_poll()
197 int idxd_wq_add_cdev(struct idxd_wq *wq) in idxd_wq_add_cdev() argument
199 struct idxd_device *idxd = wq->idxd; in idxd_wq_add_cdev()
210 idxd_cdev->wq = wq; in idxd_wq_add_cdev()
213 cdev_ctx = &ictx[wq->idxd->type]; in idxd_wq_add_cdev()
222 dev->parent = &wq->conf_dev; in idxd_wq_add_cdev()
228 idxd->id, wq->id); in idxd_wq_add_cdev()
232 wq->idxd_cdev = idxd_cdev; in idxd_wq_add_cdev()
236 dev_dbg(&wq->idxd->pdev->dev, "cdev_add failed: %d\n", rc); in idxd_wq_add_cdev()
244 wq->idxd_cdev = NULL; in idxd_wq_add_cdev()
248 void idxd_wq_del_cdev(struct idxd_wq *wq) in idxd_wq_del_cdev() argument
253 cdev_ctx = &ictx[wq->idxd->type]; in idxd_wq_del_cdev()
254 idxd_cdev = wq->idxd_cdev; in idxd_wq_del_cdev()
255 wq->idxd_cdev = NULL; in idxd_wq_del_cdev()