search for: kthread_block_work_queu

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...