Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / kernel / hrtimer.c
index 21c38a7..01fa2ae 100644 (file)
@@ -98,6 +98,7 @@ static DEFINE_PER_CPU(struct hrtimer_base, hrtimer_bases[MAX_HRTIMER_BASES]) =
 
 /**
  * ktime_get_ts - get the monotonic clock in timespec format
+ *
  * @ts:                pointer to timespec variable
  *
  * The function calculates the monotonic clock from the realtime
@@ -187,7 +188,7 @@ switch_hrtimer_base(struct hrtimer *timer, struct hrtimer_base *base)
 {
        struct hrtimer_base *new_base;
 
-       new_base = &__get_cpu_var(hrtimer_bases)[base->index];
+       new_base = &__get_cpu_var(hrtimer_bases[base->index]);
 
        if (base != new_base) {
                /*
@@ -237,6 +238,7 @@ lock_hrtimer_base(const struct hrtimer *timer, unsigned long *flags)
 # ifndef CONFIG_KTIME_SCALAR
 /**
  * ktime_add_ns - Add a scalar nanoseconds value to a ktime_t variable
+ *
  * @kt:                addend
  * @nsec:      the scalar nsec value to add
  *
@@ -297,6 +299,7 @@ void unlock_hrtimer_base(const struct hrtimer *timer, unsigned long *flags)
 
 /**
  * hrtimer_forward - forward the timer expiry
+ *
  * @timer:     hrtimer to forward
  * @now:       forward past this time
  * @interval:  the interval to forward
@@ -390,7 +393,7 @@ static void __remove_hrtimer(struct hrtimer *timer, struct hrtimer_base *base)
        if (base->first == &timer->node)
                base->first = rb_next(&timer->node);
        rb_erase(&timer->node, &base->active);
-       rb_set_parent(&timer->node, &timer->node);
+       timer->node.rb_parent = HRTIMER_INACTIVE;
 }
 
 /*
@@ -408,6 +411,7 @@ remove_hrtimer(struct hrtimer *timer, struct hrtimer_base *base)
 
 /**
  * hrtimer_start - (re)start an relative timer on the current CPU
+ *
  * @timer:     the timer to be added
  * @tim:       expiry time
  * @mode:      expiry mode: absolute (HRTIMER_ABS) or relative (HRTIMER_REL)
@@ -456,13 +460,14 @@ EXPORT_SYMBOL_GPL(hrtimer_start);
 
 /**
  * hrtimer_try_to_cancel - try to deactivate a timer
+ *
  * @timer:     hrtimer to stop
  *
  * Returns:
  *  0 when the timer was not active
  *  1 when the timer was active
  * -1 when the timer is currently excuting the callback function and
- *    cannot be stopped
+ *    can not be stopped
  */
 int hrtimer_try_to_cancel(struct hrtimer *timer)
 {
@@ -484,6 +489,7 @@ EXPORT_SYMBOL_GPL(hrtimer_try_to_cancel);
 
 /**
  * hrtimer_cancel - cancel a timer and wait for the handler to finish.
+ *
  * @timer:     the timer to be cancelled
  *
  * Returns:
@@ -504,6 +510,7 @@ EXPORT_SYMBOL_GPL(hrtimer_cancel);
 
 /**
  * hrtimer_get_remaining - get remaining time for the timer
+ *
  * @timer:     the timer to read
  */
 ktime_t hrtimer_get_remaining(const struct hrtimer *timer)
@@ -557,6 +564,7 @@ ktime_t hrtimer_get_next_event(void)
 
 /**
  * hrtimer_init - initialize a timer to the given clock
+ *
  * @timer:     the timer to be initialized
  * @clock_id:  the clock to be used
  * @mode:      timer mode abs/rel
@@ -568,18 +576,19 @@ void hrtimer_init(struct hrtimer *timer, clockid_t clock_id,
 
        memset(timer, 0, sizeof(struct hrtimer));
 
-       bases = __raw_get_cpu_var(hrtimer_bases);
+       bases = per_cpu(hrtimer_bases, raw_smp_processor_id());
 
        if (clock_id == CLOCK_REALTIME && mode != HRTIMER_ABS)
                clock_id = CLOCK_MONOTONIC;
 
        timer->base = &bases[clock_id];
-       rb_set_parent(&timer->node, &timer->node);
+       timer->node.rb_parent = HRTIMER_INACTIVE;
 }
 EXPORT_SYMBOL_GPL(hrtimer_init);
 
 /**
  * hrtimer_get_res - get the timer resolution for a clock
+ *
  * @which_clock: which clock to query
  * @tp:                 pointer to timespec variable to store the resolution
  *
@@ -590,7 +599,7 @@ int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp)
 {
        struct hrtimer_base *bases;
 
-       bases = __raw_get_cpu_var(hrtimer_bases);
+       bases = per_cpu(hrtimer_bases, raw_smp_processor_id());
        *tp = ktime_to_timespec(bases[which_clock].resolution);
 
        return 0;
@@ -669,7 +678,7 @@ static int hrtimer_wakeup(struct hrtimer *timer)
        return HRTIMER_NORESTART;
 }
 
-void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
+void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, task_t *task)
 {
        sl->timer.function = hrtimer_wakeup;
        sl->task = task;
@@ -782,10 +791,8 @@ static void __devinit init_hrtimers_cpu(int cpu)
        struct hrtimer_base *base = per_cpu(hrtimer_bases, cpu);
        int i;
 
-       for (i = 0; i < MAX_HRTIMER_BASES; i++, base++) {
+       for (i = 0; i < MAX_HRTIMER_BASES; i++, base++)
                spin_lock_init(&base->lock);
-               lockdep_set_class(&base->lock, &base->lock_key);
-       }
 }
 
 #ifdef CONFIG_HOTPLUG_CPU
@@ -835,7 +842,7 @@ static void migrate_hrtimers(int cpu)
 }
 #endif /* CONFIG_HOTPLUG_CPU */
 
-static int __cpuinit hrtimer_cpu_notify(struct notifier_block *self,
+static int hrtimer_cpu_notify(struct notifier_block *self,
                                        unsigned long action, void *hcpu)
 {
        long cpu = (long)hcpu;
@@ -859,7 +866,7 @@ static int __cpuinit hrtimer_cpu_notify(struct notifier_block *self,
        return NOTIFY_OK;
 }
 
-static struct notifier_block __cpuinitdata hrtimers_nb = {
+static struct notifier_block hrtimers_nb = {
        .notifier_call = hrtimer_cpu_notify,
 };