drivers: power: report battery voltage in AOSP compatible format
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / kernel / mutex.c
index ad53a664f113b7036fc9abed4d7d73f0be5b2479..d77807b1ed3e15fd1ca9282a3c9aa08ba112286e 100644 (file)
 #ifdef CONFIG_DEBUG_MUTEXES
 # include "mutex-debug.h"
 # include <asm-generic/mutex-null.h>
+
+#  ifndef CONFIG_LOCKDEP
+#   define CREATE_TRACE_POINTS
+#  endif
+# include <trace/events/lock.h>
+
 #else
 # include "mutex.h"
 # include <asm/mutex.h>
@@ -264,6 +270,9 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
        struct task_struct *task = current;
        struct mutex_waiter waiter;
        unsigned long flags;
+#ifdef CONFIG_DEBUG_MUTEXES
+    unsigned char __mutex_contended = 0;
+#endif
 
        preempt_disable();
        mutex_acquire_nest(&lock->dep_map, subclass, 0, nest_lock, ip);
@@ -351,6 +360,10 @@ slowpath:
                goto done;
 
        lock_contended(&lock->dep_map, ip);
+#ifdef CONFIG_DEBUG_MUTEXES
+    trace_mutex_contended(lock, ip);
+    __mutex_contended = 1; // to pair mutex_contended & mutex_acquired
+#endif
 
        for (;;) {
                /*
@@ -389,6 +402,10 @@ slowpath:
        }
 
 done:
+#ifdef CONFIG_DEBUG_MUTEXES
+    if(unlikely(__mutex_contended > 0))
+        trace_mutex_acquired(lock, ip);
+#endif
        lock_acquired(&lock->dep_map, ip);
        /* got the lock - rejoice! */
        mutex_remove_waiter(lock, &waiter, current_thread_info());