diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2010-05-10 17:26:20 -0400 |
---|---|---|
committer | Matthew Garrett <mjg@redhat.com> | 2010-08-03 09:48:45 -0400 |
commit | 8cadd2831bf3abc94f4530e7fdbab7bb39b6b27d (patch) | |
tree | 4027798914cc3213692a4865797898a5ae0a0b49 /kernel/timer.c | |
parent | 81f61484f16decba0fb68400fe0036b337b4cdc7 (diff) |
timer: add on-stack deferrable timer interfaces
In some cases (for instance with kernel threads) it may be desireable to
use on-stack deferrable timers to get their power saving benefits. Add
interfaces to support this for the IPS driver.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Diffstat (limited to 'kernel/timer.c')
-rw-r--r-- | kernel/timer.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index ee305c8d4e18..efde11e197c4 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
@@ -577,6 +577,19 @@ static void __init_timer(struct timer_list *timer, | |||
577 | lockdep_init_map(&timer->lockdep_map, name, key, 0); | 577 | lockdep_init_map(&timer->lockdep_map, name, key, 0); |
578 | } | 578 | } |
579 | 579 | ||
580 | void setup_deferrable_timer_on_stack_key(struct timer_list *timer, | ||
581 | const char *name, | ||
582 | struct lock_class_key *key, | ||
583 | void (*function)(unsigned long), | ||
584 | unsigned long data) | ||
585 | { | ||
586 | timer->function = function; | ||
587 | timer->data = data; | ||
588 | init_timer_on_stack_key(timer, name, key); | ||
589 | timer_set_deferrable(timer); | ||
590 | } | ||
591 | EXPORT_SYMBOL_GPL(setup_deferrable_timer_on_stack_key); | ||
592 | |||
580 | /** | 593 | /** |
581 | * init_timer_key - initialize a timer | 594 | * init_timer_key - initialize a timer |
582 | * @timer: the timer to be initialized | 595 | * @timer: the timer to be initialized |