diff options
author | Mike Chan <mike@android.com> | 2010-02-16 14:18:55 -0800 |
---|---|---|
committer | Mike Chan <mike@android.com> | 2010-02-19 17:03:09 -0800 |
commit | 7175b7585f84bb8e7de5f6a1e694c3275377cecb (patch) | |
tree | 79e49d72f1a9214a8d98ea135781c63e60090528 /kernel/power | |
parent | 980bfabc06ae4d0db1092784c40657f2173edefe (diff) |
power: wakelock: Print active wakelocks when has_wake_lock() is called
When DEBUG_SUSPEND is enabled print active wakelocks when we check
if there are any active wakelocks.
In print_active_locks(), print expired wakelocks if DEBUG_EXPIRE is enabled
Change-Id: Ib1cb795555e71ff23143a2bac7c8a58cbce16547
Signed-off-by: Mike Chan <mike@android.com>
Diffstat (limited to 'kernel/power')
-rw-r--r-- | kernel/power/wakelock.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/kernel/power/wakelock.c b/kernel/power/wakelock.c index 4b0e26065be0..ca48bb8d316b 100644 --- a/kernel/power/wakelock.c +++ b/kernel/power/wakelock.c @@ -208,20 +208,23 @@ static void expire_wake_lock(struct wake_lock *lock) /* Caller must acquire the list_lock spinlock */ static void print_active_locks(int type) { - unsigned long irqflags; struct wake_lock *lock; + bool print_expired = true; BUG_ON(type >= WAKE_LOCK_TYPE_COUNT); list_for_each_entry(lock, &active_wake_locks[type], link) { if (lock->flags & WAKE_LOCK_AUTO_EXPIRE) { long timeout = lock->expires - jiffies; - if (timeout <= 0) - pr_info("wake lock %s, expired\n", lock->name); - else + if (timeout > 0) pr_info("active wake lock %s, time left %ld\n", lock->name, timeout); - } else + else if (print_expired) + pr_info("wake lock %s, expired\n", lock->name); + } else { pr_info("active wake lock %s\n", lock->name); + if (!debug_mask & DEBUG_EXPIRE) + print_expired = false; + } } } @@ -250,6 +253,8 @@ long has_wake_lock(int type) unsigned long irqflags; spin_lock_irqsave(&list_lock, irqflags); ret = has_wake_lock_locked(type); + if (ret && (debug_mask & DEBUG_SUSPEND) && type == WAKE_LOCK_SUSPEND) + print_active_locks(type); spin_unlock_irqrestore(&list_lock, irqflags); return ret; } |