From: Jonathan Corbet Date: Wed, 22 Apr 2009 11:01:49 +0000 (+0100) Subject: Delete slow-work timers properly X-Git-Tag: 2.1b_release~12852 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=418df63c2d94f238ac7e1d1d53be35dd6b7a7252;p=platform%2Fkernel%2Fkernel-mfld-blackbay.git Delete slow-work timers properly Slow-work appears to delete its timer as soon as the first user unregisters, even though other users could be active. At the same time, it never seems to delete slow_work_oom_timer. Arrange for both to happen in the shutdown path. Signed-off-by: Jonathan Corbet Signed-off-by: David Howells Signed-off-by: Linus Torvalds --- diff --git a/kernel/slow-work.c b/kernel/slow-work.c index cf2bc01..b28d191 100644 --- a/kernel/slow-work.c +++ b/kernel/slow-work.c @@ -609,14 +609,14 @@ void slow_work_unregister_user(void) if (slow_work_user_count == 0) { printk(KERN_NOTICE "Slow work thread pool: Shutting down\n"); slow_work_threads_should_exit = true; + del_timer_sync(&slow_work_cull_timer); + del_timer_sync(&slow_work_oom_timer); wake_up_all(&slow_work_thread_wq); wait_for_completion(&slow_work_last_thread_exited); printk(KERN_NOTICE "Slow work thread pool:" " Shut down complete\n"); } - del_timer_sync(&slow_work_cull_timer); - mutex_unlock(&slow_work_user_lock); } EXPORT_SYMBOL(slow_work_unregister_user);