History

workqueue: Provide destroy_delayed_work_on_stack()

If a delayed or deferrable work is on stack we need to tell debug objects that we are destroying the timer and the work. Otherwise we leak the tracking object.

Thomas Gleixner committed 12 years ago

Commit ea2e64f1 parent 87291a92 files · +9 −0Browse files

Showing the changes to kernel/workqueue.c (1 of 2 files). Show all

Unified · Split

kernel/workqueue.c+7−0
@@ -516,6 +516,13 @@ void destroy_work_on_stack(struct work_struct *work) · 515 unmodified lines
516}516}
517EXPORT_SYMBOL_GPL(destroy_work_on_stack);517EXPORT_SYMBOL_GPL(destroy_work_on_stack);
518 518
519void destroy_delayed_work_on_stack(struct delayed_work *work)
520{
521 destroy_timer_on_stack(&work->timer);
522 debug_object_free(&work->work, &work_debug_descr);
523}
524EXPORT_SYMBOL_GPL(destroy_delayed_work_on_stack);
525
519#else526#else
520static inline void debug_work_activate(struct work_struct *work) { }527static inline void debug_work_activate(struct work_struct *work) { }
521static inline void debug_work_deactivate(struct work_struct *work) { }528static inline void debug_work_deactivate(struct work_struct *work) { }