mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
power: Prevent spinlock recursion when wake_unlock() is called
Signed-off-by: Mike Chan <mike@android.com> (cherry picked from commit 97a0a74383d19a1a43ffca81271894ba3edc07b6)
This commit is contained in:
parent
75880a8986
commit
714fdaf2e8
1 changed files with 2 additions and 3 deletions
|
@ -211,13 +211,13 @@ static void expire_wake_lock(struct wake_lock *lock)
|
|||
pr_info("expired wake lock %s\n", lock->name);
|
||||
}
|
||||
|
||||
/* Caller must acquire the list_lock spinlock */
|
||||
static void print_active_locks(int type)
|
||||
{
|
||||
unsigned long irqflags;
|
||||
struct wake_lock *lock;
|
||||
|
||||
BUG_ON(type >= WAKE_LOCK_TYPE_COUNT);
|
||||
spin_lock_irqsave(&list_lock, irqflags);
|
||||
list_for_each_entry(lock, &active_wake_locks[type], link) {
|
||||
if (lock->flags & WAKE_LOCK_AUTO_EXPIRE) {
|
||||
long timeout = lock->expires - jiffies;
|
||||
|
@ -229,7 +229,6 @@ static void print_active_locks(int type)
|
|||
} else
|
||||
pr_info("active wake lock %s\n", lock->name);
|
||||
}
|
||||
spin_unlock_irqrestore(&list_lock, irqflags);
|
||||
}
|
||||
|
||||
static long has_wake_lock_locked(int type)
|
||||
|
@ -386,9 +385,9 @@ static void expire_wake_locks(unsigned long data)
|
|||
unsigned long irqflags;
|
||||
if (debug_mask & DEBUG_EXPIRE)
|
||||
pr_info("expire_wake_locks: start\n");
|
||||
spin_lock_irqsave(&list_lock, irqflags);
|
||||
if (debug_mask & DEBUG_SUSPEND)
|
||||
print_active_locks(WAKE_LOCK_SUSPEND);
|
||||
spin_lock_irqsave(&list_lock, irqflags);
|
||||
has_lock = has_wake_lock_locked(WAKE_LOCK_SUSPEND);
|
||||
if (debug_mask & DEBUG_EXPIRE)
|
||||
pr_info("expire_wake_locks: done, has_lock %ld\n", has_lock);
|
||||
|
|
Loading…
Reference in a new issue