rxrpc: Fix use of Don't Fragment flag
[platform/kernel/linux-starfive.git] / kernel / watchdog.c
index be38276..5cd6d4e 100644 (file)
@@ -151,9 +151,6 @@ void watchdog_hardlockup_check(unsigned int cpu, struct pt_regs *regs)
         */
        if (is_hardlockup(cpu)) {
                unsigned int this_cpu = smp_processor_id();
-               struct cpumask backtrace_mask;
-
-               cpumask_copy(&backtrace_mask, cpu_online_mask);
 
                /* Only print hardlockups once. */
                if (per_cpu(watchdog_hardlockup_warned, cpu))
@@ -167,10 +164,8 @@ void watchdog_hardlockup_check(unsigned int cpu, struct pt_regs *regs)
                                show_regs(regs);
                        else
                                dump_stack();
-                       cpumask_clear_cpu(cpu, &backtrace_mask);
                } else {
-                       if (trigger_single_cpu_backtrace(cpu))
-                               cpumask_clear_cpu(cpu, &backtrace_mask);
+                       trigger_single_cpu_backtrace(cpu);
                }
 
                /*
@@ -179,7 +174,7 @@ void watchdog_hardlockup_check(unsigned int cpu, struct pt_regs *regs)
                 */
                if (sysctl_hardlockup_all_cpu_backtrace &&
                    !test_and_set_bit(0, &watchdog_hardlockup_all_cpu_dumped))
-                       trigger_cpumask_backtrace(&backtrace_mask);
+                       trigger_allbutcpu_cpu_backtrace(cpu);
 
                if (hardlockup_panic)
                        nmi_panic(regs, "Hard LOCKUP");
@@ -288,6 +283,13 @@ static DEFINE_PER_CPU(struct hrtimer, watchdog_hrtimer);
 static DEFINE_PER_CPU(bool, softlockup_touch_sync);
 static unsigned long soft_lockup_nmi_warn;
 
+static int __init softlockup_panic_setup(char *str)
+{
+       softlockup_panic = simple_strtoul(str, NULL, 0);
+       return 1;
+}
+__setup("softlockup_panic=", softlockup_panic_setup);
+
 static int __init nowatchdog_setup(char *str)
 {
        watchdog_user_enabled = 0;
@@ -523,7 +525,7 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
                        dump_stack();
 
                if (softlockup_all_cpu_backtrace) {
-                       trigger_allbutself_cpu_backtrace();
+                       trigger_allbutcpu_cpu_backtrace(smp_processor_id());
                        clear_bit_unlock(0, &soft_lockup_nmi_warn);
                }