diff options
Diffstat (limited to 'arch/tile/kernel/smp.c')
| -rw-r--r-- | arch/tile/kernel/smp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/tile/kernel/smp.c b/arch/tile/kernel/smp.c index a44e103c5a63..91da0f721958 100644 --- a/arch/tile/kernel/smp.c +++ b/arch/tile/kernel/smp.c | |||
| @@ -103,7 +103,7 @@ static void smp_stop_cpu_interrupt(void) | |||
| 103 | set_cpu_online(smp_processor_id(), 0); | 103 | set_cpu_online(smp_processor_id(), 0); |
| 104 | arch_local_irq_disable_all(); | 104 | arch_local_irq_disable_all(); |
| 105 | for (;;) | 105 | for (;;) |
| 106 | asm("nap"); | 106 | asm("nap; nop"); |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | /* This function calls the 'stop' function on all other CPUs in the system. */ | 109 | /* This function calls the 'stop' function on all other CPUs in the system. */ |
| @@ -113,6 +113,12 @@ void smp_send_stop(void) | |||
| 113 | send_IPI_allbutself(MSG_TAG_STOP_CPU); | 113 | send_IPI_allbutself(MSG_TAG_STOP_CPU); |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | /* On panic, just wait; we may get an smp_send_stop() later on. */ | ||
| 117 | void panic_smp_self_stop(void) | ||
| 118 | { | ||
| 119 | while (1) | ||
| 120 | asm("nap; nop"); | ||
| 121 | } | ||
| 116 | 122 | ||
| 117 | /* | 123 | /* |
| 118 | * Dispatch code called from hv_message_intr() for HV_MSG_TILE hv messages. | 124 | * Dispatch code called from hv_message_intr() for HV_MSG_TILE hv messages. |
