aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-09-28 11:08:17 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2010-10-19 09:40:38 -0400
commitbd6d5f1dd586a27c2082ad4d95ee58913b471f5c (patch)
tree3d97718b86ed5d75fee6ecff165367f8a73670cf
parentc8f95e3e04ffc1d96b7b615f8be9b7ac941ead15 (diff)
hrtimer: add init function to properly set hrtimer_start_on_info params
This helper function is also useful to remind us that if we use hrtimer_pull outside the scope of triggering remote releases, we need to take care of properly set the "state" field of hrtimer_start_on_info structure.
-rw-r--r--include/linux/hrtimer.h1
-rw-r--r--kernel/hrtimer.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 370096d132d1..9470a9e4a8ff 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -374,6 +374,7 @@ __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
374 const enum hrtimer_mode mode, int wakeup); 374 const enum hrtimer_mode mode, int wakeup);
375 375
376#ifdef CONFIG_ARCH_HAS_SEND_PULL_TIMERS 376#ifdef CONFIG_ARCH_HAS_SEND_PULL_TIMERS
377extern void hrtimer_start_on_info_init(struct hrtimer_start_on_info *info);
377extern int hrtimer_start_on(int cpu, struct hrtimer_start_on_info *info, 378extern int hrtimer_start_on(int cpu, struct hrtimer_start_on_info *info,
378 struct hrtimer *timer, ktime_t time, 379 struct hrtimer *timer, ktime_t time,
379 const enum hrtimer_mode mode); 380 const enum hrtimer_mode mode);
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index 18314ae830ee..fdf95968e517 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -1046,6 +1046,15 @@ EXPORT_SYMBOL_GPL(hrtimer_start);
1046#ifdef CONFIG_ARCH_HAS_SEND_PULL_TIMERS 1046#ifdef CONFIG_ARCH_HAS_SEND_PULL_TIMERS
1047 1047
1048/** 1048/**
1049 * hrtimer_start_on_info_init - Initialize hrtimer_start_on_info
1050 */
1051void hrtimer_start_on_info_init(struct hrtimer_start_on_info *info)
1052{
1053 memset(info, 0, sizeof(struct hrtimer_start_on_info));
1054 atomic_set(&info->state, HRTIMER_START_ON_INACTIVE);
1055}
1056
1057/**
1049 * hrtimer_pull - PULL_TIMERS_VECTOR callback on remote cpu 1058 * hrtimer_pull - PULL_TIMERS_VECTOR callback on remote cpu
1050 */ 1059 */
1051void hrtimer_pull(void) 1060void hrtimer_pull(void)