Merge mulgrave-w:git/scsi-misc-2.6
[sfrench/cifs-2.6.git] / include / linux / hrtimer.h
index 306acf1dc6d58b54aef407d2ab9e370ff18eaa99..4fc379de6c2ffceea015fa9b80ba987cfc42742e 100644 (file)
@@ -40,7 +40,6 @@ struct hrtimer_base;
 
 /**
  * struct hrtimer - the basic hrtimer structure
- *
  * @node:      red black tree node for time ordered insertion
  * @expires:   the absolute expiry time in the hrtimers internal
  *             representation. The time is related to the clock on
@@ -59,7 +58,6 @@ struct hrtimer {
 
 /**
  * struct hrtimer_sleeper - simple sleeper structure
- *
  * @timer:     embedded timer structure
  * @task:      task to wake up
  *
@@ -72,7 +70,6 @@ struct hrtimer_sleeper {
 
 /**
  * struct hrtimer_base - the timer base for a specific clock
- *
  * @index:             clock type index for per_cpu support when moving a timer
  *                     to a base on another cpu.
  * @lock:              lock protecting the base and associated timers
@@ -83,6 +80,7 @@ struct hrtimer_sleeper {
  * @get_softirq_time:  function to retrieve the current time from the softirq
  * @curr_timer:                the timer which is executing a callback right now
  * @softirq_time:      the time when running the hrtimer queue in the softirq
+ * @lock_key:          the lock_class_key for use with lockdep
  */
 struct hrtimer_base {
        clockid_t               index;
@@ -94,6 +92,7 @@ struct hrtimer_base {
        ktime_t                 (*get_softirq_time)(void);
        struct hrtimer          *curr_timer;
        ktime_t                 softirq_time;
+       struct lock_class_key lock_key;
 };
 
 /*
@@ -127,7 +126,7 @@ extern ktime_t hrtimer_get_next_event(void);
 
 static inline int hrtimer_active(const struct hrtimer *timer)
 {
-       return timer->node.rb_parent != HRTIMER_INACTIVE;
+       return rb_parent(&timer->node) != &timer->node;
 }
 
 /* Forward a hrtimer so it expires after now: */