|
@@ -145,9 +145,9 @@ static irqreturn_t reschedule_action(int irq, void *data)
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|
|
|
-static irqreturn_t call_function_single_action(int irq, void *data)
|
|
|
+static irqreturn_t unused_action(int irq, void *data)
|
|
|
{
|
|
|
- generic_smp_call_function_single_interrupt();
|
|
|
+ /* This slot is unused and hence available for use, if needed */
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|
|
@@ -168,14 +168,14 @@ static irqreturn_t debug_ipi_action(int irq, void *data)
|
|
|
static irq_handler_t smp_ipi_action[] = {
|
|
|
[PPC_MSG_CALL_FUNCTION] = call_function_action,
|
|
|
[PPC_MSG_RESCHEDULE] = reschedule_action,
|
|
|
- [PPC_MSG_CALL_FUNC_SINGLE] = call_function_single_action,
|
|
|
+ [PPC_MSG_UNUSED] = unused_action,
|
|
|
[PPC_MSG_DEBUGGER_BREAK] = debug_ipi_action,
|
|
|
};
|
|
|
|
|
|
const char *smp_ipi_name[] = {
|
|
|
[PPC_MSG_CALL_FUNCTION] = "ipi call function",
|
|
|
[PPC_MSG_RESCHEDULE] = "ipi reschedule",
|
|
|
- [PPC_MSG_CALL_FUNC_SINGLE] = "ipi call function single",
|
|
|
+ [PPC_MSG_UNUSED] = "ipi unused",
|
|
|
[PPC_MSG_DEBUGGER_BREAK] = "ipi debugger",
|
|
|
};
|
|
|
|
|
@@ -251,8 +251,6 @@ irqreturn_t smp_ipi_demux(void)
|
|
|
generic_smp_call_function_interrupt();
|
|
|
if (all & IPI_MESSAGE(PPC_MSG_RESCHEDULE))
|
|
|
scheduler_ipi();
|
|
|
- if (all & IPI_MESSAGE(PPC_MSG_CALL_FUNC_SINGLE))
|
|
|
- generic_smp_call_function_single_interrupt();
|
|
|
if (all & IPI_MESSAGE(PPC_MSG_DEBUGGER_BREAK))
|
|
|
debug_ipi_action(0, NULL);
|
|
|
} while (info->messages);
|
|
@@ -280,7 +278,7 @@ EXPORT_SYMBOL_GPL(smp_send_reschedule);
|
|
|
|
|
|
void arch_send_call_function_single_ipi(int cpu)
|
|
|
{
|
|
|
- do_message_pass(cpu, PPC_MSG_CALL_FUNC_SINGLE);
|
|
|
+ do_message_pass(cpu, PPC_MSG_CALL_FUNCTION);
|
|
|
}
|
|
|
|
|
|
void arch_send_call_function_ipi_mask(const struct cpumask *mask)
|