X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=kernel%2Fstop_machine.c;h=4a1ca5f6da7e15b7c9efd200eff1a455ab1412ab;hb=f9bcf1e0e0145323ba2cf72ecad5264ff3883eb1;hp=a467e6c28a3b2d4be1ecfa5c14d3a35d1ef304f8;hpb=1ca80a0a3e37d847f3cd6120ca5eb35b39a9a152;p=cascardo%2Flinux.git diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index a467e6c28a3b..4a1ca5f6da7e 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -21,6 +21,7 @@ #include #include #include +#include /* * Structure to determine completion condition and record errors. May @@ -209,6 +210,13 @@ static int multi_cpu_stop(void *data) break; } ack_state(msdata); + } else if (curstate > MULTI_STOP_PREPARE) { + /* + * At this stage all other CPUs we depend on must spin + * in the same loop. Any reason for hard-lockup should + * be detected and reported on their side. + */ + touch_nmi_watchdog(); } } while (curstate != MULTI_STOP_EXIT);