summaryrefslogtreecommitdiffstats
path: root/kernel/kexec_file.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2017-10-03 16:39:02 +0200
committerThomas Gleixner <tglx@linutronix.de>2017-10-04 10:53:54 +0200
commit34ddaa3e5c0096fef52485186c7eb6cf56ddc686 (patch)
tree3d98dfe007218f46a0b9b287fb2fe58b4797a9d5 /kernel/kexec_file.c
parente31d6883f21c1cdfe5bc64e28411f8a92b783fde (diff)
downloadlinux-34ddaa3e5c0096fef52485186c7eb6cf56ddc686.tar.gz
linux-34ddaa3e5c0096fef52485186c7eb6cf56ddc686.tar.bz2
linux-34ddaa3e5c0096fef52485186c7eb6cf56ddc686.zip
powerpc/watchdog: Make use of watchdog_nmi_probe()
The rework of the core hotplug code triggers the WARN_ON in start_wd_cpu() on powerpc because it is called multiple times for the boot CPU. The first call is via: start_wd_on_cpu+0x80/0x2f0 watchdog_nmi_reconfigure+0x124/0x170 softlockup_reconfigure_threads+0x110/0x130 lockup_detector_init+0xbc/0xe0 kernel_init_freeable+0x18c/0x37c kernel_init+0x2c/0x160 ret_from_kernel_thread+0x5c/0xbc And then again via the CPU hotplug registration: start_wd_on_cpu+0x80/0x2f0 cpuhp_invoke_callback+0x194/0x620 cpuhp_thread_fun+0x7c/0x1b0 smpboot_thread_fn+0x290/0x2a0 kthread+0x168/0x1b0 ret_from_kernel_thread+0x5c/0xbc This can be avoided by setting up the cpu hotplug state with nocalls and move the initialization to the watchdog_nmi_probe() function. That initializes the hotplug callbacks without invoking the callback and the following core initialization function then configures the watchdog for the online CPUs (in this case CPU0) via softlockup_reconfigure_threads(). Reported-and-tested-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Michael Ellerman <mpe@ellerman.id.au> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: linuxppc-dev@lists.ozlabs.org
Diffstat (limited to 'kernel/kexec_file.c')
0 files changed, 0 insertions, 0 deletions