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

Commit 1bab4f5e authored by Kyle Yan's avatar Kyle Yan Committed by Gerrit - the friendly Code Review server
Browse files

Merge "watchdog: Induce non secure watchdog bite for lockup" into msm-4.9

parents 8753bdb5 309fb625
Loading
Loading
Loading
Loading
+12 −2
Original line number Original line Diff line number Diff line
@@ -27,6 +27,7 @@
#include <linux/kvm_para.h>
#include <linux/kvm_para.h>
#include <linux/perf_event.h>
#include <linux/perf_event.h>
#include <linux/kthread.h>
#include <linux/kthread.h>
#include <soc/qcom/watchdog.h>


/*
/*
 * The run state of the lockup detectors is controlled by the content of the
 * The run state of the lockup detectors is controlled by the content of the
@@ -364,8 +365,11 @@ static void watchdog_check_hardlockup_other_cpu(void)
		if (per_cpu(hard_watchdog_warn, next_cpu) == true)
		if (per_cpu(hard_watchdog_warn, next_cpu) == true)
			return;
			return;


		if (hardlockup_panic)
		if (hardlockup_panic) {
			panic("Watchdog detected hard LOCKUP on cpu %u", next_cpu);
			pr_err("Watchdog detected hard LOCKUP on cpu %u",
					next_cpu);
			msm_trigger_wdog_bite();
		}
		else
		else
			WARN(1, "Watchdog detected hard LOCKUP on cpu %u", next_cpu);
			WARN(1, "Watchdog detected hard LOCKUP on cpu %u", next_cpu);


@@ -427,6 +431,9 @@ static void watchdog_overflow_callback(struct perf_event *event,
			return;
			return;


		pr_emerg("Watchdog detected hard LOCKUP on cpu %d", this_cpu);
		pr_emerg("Watchdog detected hard LOCKUP on cpu %d", this_cpu);
		if (hardlockup_panic)
			msm_trigger_wdog_bite();

		print_modules();
		print_modules();
		print_irqtrace_events(current);
		print_irqtrace_events(current);
		if (regs)
		if (regs)
@@ -549,6 +556,9 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
		pr_emerg("BUG: soft lockup - CPU#%d stuck for %us! [%s:%d]\n",
		pr_emerg("BUG: soft lockup - CPU#%d stuck for %us! [%s:%d]\n",
			smp_processor_id(), duration,
			smp_processor_id(), duration,
			current->comm, task_pid_nr(current));
			current->comm, task_pid_nr(current));

		if (softlockup_panic)
			msm_trigger_wdog_bite();
		__this_cpu_write(softlockup_task_ptr_saved, current);
		__this_cpu_write(softlockup_task_ptr_saved, current);
		print_modules();
		print_modules();
		print_irqtrace_events(current);
		print_irqtrace_events(current);