git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lib/spinlock_debug.c: print owner on spinlock lockup
[pandora-kernel.git]
/
lib
/
spinlock_debug.c
diff --git
a/lib/spinlock_debug.c
b/lib/spinlock_debug.c
index
4755b98
..
5f3eacd
100644
(file)
--- a/
lib/spinlock_debug.c
+++ b/
lib/spinlock_debug.c
@@
-49,13
+49,10
@@
void __rwlock_init(rwlock_t *lock, const char *name,
EXPORT_SYMBOL(__rwlock_init);
EXPORT_SYMBOL(__rwlock_init);
-static void spin_
bug
(raw_spinlock_t *lock, const char *msg)
+static void spin_
dump
(raw_spinlock_t *lock, const char *msg)
{
struct task_struct *owner = NULL;
{
struct task_struct *owner = NULL;
- if (!debug_locks_off())
- return;
-
if (lock->owner && lock->owner != SPINLOCK_OWNER_INIT)
owner = lock->owner;
printk(KERN_EMERG "BUG: spinlock %s on CPU#%d, %s/%d\n",
if (lock->owner && lock->owner != SPINLOCK_OWNER_INIT)
owner = lock->owner;
printk(KERN_EMERG "BUG: spinlock %s on CPU#%d, %s/%d\n",
@@
-70,6
+67,14
@@
static void spin_bug(raw_spinlock_t *lock, const char *msg)
dump_stack();
}
dump_stack();
}
+static void spin_bug(raw_spinlock_t *lock, const char *msg)
+{
+ if (!debug_locks_off())
+ return;
+
+ spin_dump(lock, msg);
+}
+
#define SPIN_BUG_ON(cond, lock, msg) if (unlikely(cond)) spin_bug(lock, msg)
static inline void
#define SPIN_BUG_ON(cond, lock, msg) if (unlikely(cond)) spin_bug(lock, msg)
static inline void
@@
-113,11
+118,7
@@
static void __spin_lock_debug(raw_spinlock_t *lock)
/* lockup suspected: */
if (print_once) {
print_once = 0;
/* lockup suspected: */
if (print_once) {
print_once = 0;
- printk(KERN_EMERG "BUG: spinlock lockup on CPU#%d, "
- "%s/%d, %p\n",
- raw_smp_processor_id(), current->comm,
- task_pid_nr(current), lock);
- dump_stack();
+ spin_dump(lock, "lockup");
#ifdef CONFIG_SMP
trigger_all_cpu_backtrace();
#endif
#ifdef CONFIG_SMP
trigger_all_cpu_backtrace();
#endif