Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb87dd7b authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "lib: spinlock: Cause a watchdog bite on spin_dump"

parents e9443268 1572891f
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -12,6 +12,8 @@
#include <linux/debug_locks.h>
#include <linux/delay.h>
#include <linux/export.h>
#include <linux/bug.h>
#include <soc/qcom/watchdog.h>

void __raw_spin_lock_init(raw_spinlock_t *lock, const char *name,
			  struct lock_class_key *key)
@@ -64,6 +66,11 @@ static void spin_dump(raw_spinlock_t *lock, const char *msg)
		owner ? owner->comm : "<none>",
		owner ? task_pid_nr(owner) : -1,
		lock->owner_cpu);
#ifdef CONFIG_DEBUG_SPINLOCK_BITE_ON_BUG
	msm_trigger_wdog_bite();
#elif defined(CONFIG_DEBUG_SPINLOCK_PANIC_ON_BUG)
	BUG();
#endif
	dump_stack();
}

+23 −1
Original line number Diff line number Diff line
@@ -1064,6 +1064,28 @@ config DEBUG_SPINLOCK
	  and certain other kinds of spinlock errors commonly made.  This is
	  best used in conjunction with the NMI watchdog so that spinlock
	  deadlocks are also debuggable.
choice
        prompt "Perform Action on spinlock bug"
        depends on DEBUG_SPINLOCK

        default DEBUG_SPINLOCK_BITE_ON_BUG

        config DEBUG_SPINLOCK_BITE_ON_BUG
                bool "Cause a Watchdog Bite on Spinlock bug"
                depends on QCOM_WATCHDOG_V2
                help
                  On a spinlock bug, cause a watchdog bite so that we can get
                  the precise state of the system captured at the time of spin
                  dump. This is mutually exclusive with the below
                  DEBUG_SPINLOCK_PANIC_ON_BUG config.

        config DEBUG_SPINLOCK_PANIC_ON_BUG
                bool "Cause a Kernel Panic on Spinlock bug"
                help
                  On a spinlock bug, cause a kernel panic so that we can get the complete
                  information about the system at the time of spin dump in the dmesg.
                  This is mutually exclusive with the above DEBUG_SPINLOCK_BITE_ON_BUG.
endchoice

config DEBUG_MUTEXES
	bool "Mutex debugging: basic checks"