Merge tag 'usb-ci-v4.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/peter...
[cascardo/linux.git] / kernel / stop_machine.c
index a467e6c..4a1ca5f 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/smpboot.h>
 #include <linux/atomic.h>
 #include <linux/lglock.h>
+#include <linux/nmi.h>
 
 /*
  * 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);