diff options
author | Tejun Heo <tj@kernel.org> | 2012-08-13 17:08:19 -0700 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2012-08-13 17:08:19 -0700 |
commit | 23657bb192f14b789e4c478def8f11ecc95b4f6c (patch) | |
tree | 53d92c542c219d60ccef2ada045235f5e7076863 /include/linux/timer.h | |
parent | 1265057fa02c7bed3b6d9ddc8a2048065a370364 (diff) |
workqueue: add missing wmb() in clear_work_data()
Any operation which clears PENDING should be preceded by a wmb to
guarantee that the next PENDING owner sees all the changes made before
PENDING release.
There are only two places where PENDING is cleared -
set_work_cpu_and_clear_pending() and clear_work_data(). The caller of
the former already does smp_wmb() but the latter doesn't have any.
Move the wmb above set_work_cpu_and_clear_pending() into it and add
one to clear_work_data().
There hasn't been any report related to this issue, and, given how
clear_work_data() is used, it is extremely unlikely to have caused any
actual problems on any architecture.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Diffstat (limited to 'include/linux/timer.h')
0 files changed, 0 insertions, 0 deletions