diff options
author | Nitin Kumbhar <nkumbhar@nvidia.com> | 2011-01-18 14:52:31 +0530 |
---|---|---|
committer | Nitin Kumbhar <nkumbhar@nvidia.com> | 2011-01-18 14:52:31 +0530 |
commit | 754deb500cac53edcff2165ca4edb8c8be896d2c (patch) | |
tree | 71356f7bf39e87b5d261ab69c159cb8a114831eb /drivers/rtc | |
parent | 66e0ed154cfb916b83e3f0074f7cd197effaab39 (diff) | |
parent | 5edc1199f320e0d9226fe8b73711c6a171ce78de (diff) |
merging android-tegra-2.6.36 into git-master/linux-2.6/android-tegra-2.6.36
Conflicts:
drivers/net/wireless/bcm4329/Makefile
Change-Id: I31ce81e09c6f18d6966a5cffebc533453bce02d8
Diffstat (limited to 'drivers/rtc')
-rwxr-xr-x | drivers/rtc/alarm.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/rtc/alarm.c b/drivers/rtc/alarm.c index 45be9101a1d8..abefa27a6745 100755 --- a/drivers/rtc/alarm.c +++ b/drivers/rtc/alarm.c @@ -109,12 +109,15 @@ static void alarm_enqueue_locked(struct alarm *alarm) struct rb_node *parent = NULL; struct alarm *entry; int leftmost = 1; + bool was_first = false; pr_alarm(FLOW, "added alarm, type %d, func %pF at %lld\n", alarm->type, alarm->function, ktime_to_ns(alarm->expires)); - if (base->first == &alarm->node) + if (base->first == &alarm->node) { base->first = rb_next(&alarm->node); + was_first = true; + } if (!RB_EMPTY_NODE(&alarm->node)) { rb_erase(&alarm->node, &base->alarms); RB_CLEAR_NODE(&alarm->node); @@ -134,10 +137,10 @@ static void alarm_enqueue_locked(struct alarm *alarm) leftmost = 0; } } - if (leftmost) { + if (leftmost) base->first = &alarm->node; - update_timer_locked(base, false); - } + if (leftmost || was_first) + update_timer_locked(base, was_first); rb_link_node(&alarm->node, parent, link); rb_insert_color(&alarm->node, &base->alarms); |