Lines Matching defs:work
142 struct vhost_work work;
146 static void vhost_flush_work(struct vhost_work *work)
150 s = container_of(work, struct vhost_flush_struct, work);
168 struct vhost_work *work = &poll->work;
174 work->fn(work);
181 void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn)
183 clear_bit(VHOST_WORK_QUEUED, &work->flags);
184 work->fn = fn;
200 vhost_work_init(&poll->work, fn);
237 struct vhost_work *work)
239 if (!test_and_set_bit(VHOST_WORK_QUEUED, &work->flags)) {
240 /* We can only add the work to the list after we're
244 llist_add(&work->node, &worker->work_list);
249 bool vhost_vq_work_queue(struct vhost_virtqueue *vq, struct vhost_work *work)
258 vhost_worker_queue(worker, work);
271 vhost_work_init(&flush.work, vhost_flush_work);
273 if (vhost_vq_work_queue(vq, &flush.work))
290 vhost_work_init(&flush.work, vhost_flush_work);
292 vhost_worker_queue(worker, &flush.work);
331 vhost_vq_work_queue(poll->vq, &poll->work);
398 struct vhost_work *work, *work_next;
408 llist_for_each_entry_safe(work, work_next, node, node) {
409 clear_bit(VHOST_WORK_QUEUED, &work->flags);
411 work->fn(work);
678 * Take the worker mutex to make sure we see the work queued from
884 * This should be done last, because vsock can queue work