diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-03-23 08:02:55 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-03-23 08:02:55 +0100 |
| commit | cbf580ff093861f021b31b2f8d0f03173fb58520 (patch) | |
| tree | 948a7b6424e580979763c8576fee0bb7c326b0db /include/linux/workqueue.h | |
| parent | db1032f7e485ea95b83ad66bb3d1675ad66de77f (diff) | |
| parent | 16fbf79b0f83bc752cee8589279f1ebfe57b3b6e (diff) | |
| download | cachepc-linux-cbf580ff093861f021b31b2f8d0f03173fb58520.tar.gz cachepc-linux-cbf580ff093861f021b31b2f8d0f03173fb58520.zip | |
Merge 5.6-rc7 into tty-next
We need the tty fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/workqueue.h')
| -rw-r--r-- | include/linux/workqueue.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 4261d1c6e87b..e48554e6526c 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -487,6 +487,19 @@ extern void wq_worker_comm(char *buf, size_t size, struct task_struct *task); * * We queue the work to the CPU on which it was submitted, but if the CPU dies * it can be processed by another CPU. + * + * Memory-ordering properties: If it returns %true, guarantees that all stores + * preceding the call to queue_work() in the program order will be visible from + * the CPU which will execute @work by the time such work executes, e.g., + * + * { x is initially 0 } + * + * CPU0 CPU1 + * + * WRITE_ONCE(x, 1); [ @work is being executed ] + * r0 = queue_work(wq, work); r1 = READ_ONCE(x); + * + * Forbids: r0 == true && r1 == 0 */ static inline bool queue_work(struct workqueue_struct *wq, struct work_struct *work) @@ -546,6 +559,9 @@ static inline bool schedule_work_on(int cpu, struct work_struct *work) * This puts a job in the kernel-global workqueue if it was not already * queued and leaves it in the same position on the kernel-global * workqueue otherwise. + * + * Shares the same memory-ordering properties of queue_work(), cf. the + * DocBook header of queue_work(). */ static inline bool schedule_work(struct work_struct *work) { |
