Displaying 3 results from an estimated 3 matches for "kthread_block_work_queu".
2020 May 08
0
[RFC v4 02/12] kthread: Add kthread_(un)block_work_queuing() and kthread_work_queuable()
...6fee200fced 100644
--- a/include/linux/kthread.h
+++ b/include/linux/kthread.h
@@ -211,9 +211,28 @@ void kthread_flush_worker(struct kthread_worker *worker);
bool kthread_cancel_work_sync(struct kthread_work *work);
bool kthread_cancel_delayed_work_sync(struct kthread_delayed_work *work);
+void kthread_block_work_queuing(struct kthread_worker *worker,
+ struct kthread_work *work);
+void kthread_unblock_work_queuing(struct kthread_worker *worker,
+ struct kthread_work *work);
void kthread_destroy_worker(struct kthread_worker *worker);
+/**
+ * kthread_work_queuable - whether or not a kthread work can...
2020 May 08
16
[RFC v4 00/12] drm/nouveau: Introduce CRC support for gf119+
Nvidia released some documentation on how CRC support works on their
GPUs, hooray!
So: this patch series implements said CRC support in nouveau, along with
adding some special debugfs interfaces for some relevant igt-gpu-tools
tests (already on the ML).
First - we add some new functionality to kthread_work in the kernel, and
then use this to add a new feature to DRM that Ville Syrj?l? came up
2020 May 08
0
[RFC v4 04/12] drm/vblank: Add vblank works
...d to execute, %false
+ * otherwise.
+ */
+bool drm_vblank_work_cancel_sync(struct drm_vblank_work *work)
+{
+ struct drm_vblank_crtc *vblank = work->vblank;
+ bool vbl_put, cancelled;
+
+ spin_lock_irq(&vblank->work_lock);
+ cancelled = vblank_work_cancel(work);
+ vbl_put = cancelled;
+
+ kthread_block_work_queuing(vblank->worker, &work->base);
+ spin_unlock_irq(&vblank->work_lock);
+
+ cancelled |= kthread_cancel_work_sync(&work->base);
+ if (vbl_put)
+ drm_vblank_put(vblank->dev, vblank->pipe);
+
+ kthread_unblock_work_queuing(vblank->worker, &work->base);
+
+ ret...