summaryrefslogtreecommitdiffstats
path: root/drivers/oprofile/cpu_buffer.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2010-10-15 15:51:08 +0200
committerRobert Richter <robert.richter@amd.com>2010-10-29 11:54:18 +0200
commit3d7851b3cdd43a734e5cc4c643fd886ab28ad4d5 (patch)
treec78750f357d78e226faa83d393b19e963dd85fa2 /drivers/oprofile/cpu_buffer.c
parentoprofile: Fix the hang while taking the cpu offline (diff)
downloadlinux-3d7851b3cdd43a734e5cc4c643fd886ab28ad4d5.tar.xz
linux-3d7851b3cdd43a734e5cc4c643fd886ab28ad4d5.zip
oprofile: Remove deprecated use of flush_scheduled_work()
flush_scheduled_work() is deprecated and scheduled to be removed. sync_stop() currently cancels cpu_buffer works inside buffer_mutex and flushes the system workqueue outside. Instead, split end_cpu_work() into two parts - stopping further work enqueues and flushing works - and do the former inside buffer_mutex and latter outside. For stable kernels v2.6.35.y and v2.6.36.y. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: stable@kernel.org Signed-off-by: Robert Richter <robert.richter@amd.com>
Diffstat (limited to 'drivers/oprofile/cpu_buffer.c')
-rw-r--r--drivers/oprofile/cpu_buffer.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c
index f179ac2ea801..59f55441e075 100644
--- a/drivers/oprofile/cpu_buffer.c
+++ b/drivers/oprofile/cpu_buffer.c
@@ -111,14 +111,18 @@ void start_cpu_work(void)
void end_cpu_work(void)
{
- int i;
-
work_enabled = 0;
+}
+
+void flush_cpu_work(void)
+{
+ int i;
for_each_online_cpu(i) {
struct oprofile_cpu_buffer *b = &per_cpu(op_cpu_buffer, i);
- cancel_delayed_work(&b->work);
+ /* these works are per-cpu, no need for flush_sync */
+ flush_delayed_work(&b->work);
}
}