> The patch below solves stalled IPI processing on octeon. When IPIs are > finally enabled during boot, some kernel threads have already been > started. There seems to be no mechanism that would update interrupt > masks for a running thread, so the early threads run IPIs disabled. > This will lead to a deadlock quite soon after launching other cores. > The patch makes the registering of the IPI handler happen early enough > for the correct idle_mask to propagate to all threads.
This makes sense. However, your `ipi_enabled' new variable basically mimics an `if (ipi_handler != NULL)' test, so there is no need for an extra variable. Miod
