powerpc: move timer broadcast code under GENERIC_CLOCKEVENTS_BROADCAST ifdef
authorNicholas Piggin <npiggin@gmail.com>
Fri, 4 May 2018 17:19:33 +0000 (03:19 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 3 Jun 2018 10:40:28 +0000 (20:40 +1000)
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/smp.c
arch/powerpc/kernel/time.c

index f66eec8..6f5e3a6 100644 (file)
@@ -156,11 +156,13 @@ static irqreturn_t reschedule_action(int irq, void *data)
        return IRQ_HANDLED;
 }
 
+#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
 static irqreturn_t tick_broadcast_ipi_action(int irq, void *data)
 {
        timer_broadcast_interrupt();
        return IRQ_HANDLED;
 }
+#endif
 
 #ifdef CONFIG_NMI_IPI
 static irqreturn_t nmi_ipi_action(int irq, void *data)
@@ -173,7 +175,9 @@ static irqreturn_t nmi_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,
+#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
        [PPC_MSG_TICK_BROADCAST] = tick_broadcast_ipi_action,
+#endif
 #ifdef CONFIG_NMI_IPI
        [PPC_MSG_NMI_IPI] = nmi_ipi_action,
 #endif
@@ -187,7 +191,9 @@ static irq_handler_t smp_ipi_action[] = {
 const char *smp_ipi_name[] = {
        [PPC_MSG_CALL_FUNCTION] =  "ipi call function",
        [PPC_MSG_RESCHEDULE] = "ipi reschedule",
+#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
        [PPC_MSG_TICK_BROADCAST] = "ipi tick-broadcast",
+#endif
        [PPC_MSG_NMI_IPI] = "nmi ipi",
 };
 
@@ -278,8 +284,10 @@ irqreturn_t smp_ipi_demux_relaxed(void)
                        generic_smp_call_function_interrupt();
                if (all & IPI_MESSAGE(PPC_MSG_RESCHEDULE))
                        scheduler_ipi();
+#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
                if (all & IPI_MESSAGE(PPC_MSG_TICK_BROADCAST))
                        timer_broadcast_interrupt();
+#endif
 #ifdef CONFIG_NMI_IPI
                if (all & IPI_MESSAGE(PPC_MSG_NMI_IPI))
                        nmi_ipi_action(0, NULL);
index 5862a36..23921f7 100644 (file)
@@ -643,6 +643,7 @@ void timer_interrupt(struct pt_regs *regs)
 }
 EXPORT_SYMBOL(timer_interrupt);
 
+#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
 void timer_broadcast_interrupt(void)
 {
        u64 *next_tb = this_cpu_ptr(&decrementers_next_tb);
@@ -654,6 +655,7 @@ void timer_broadcast_interrupt(void)
        __this_cpu_inc(irq_stat.timer_irqs_event);
        trace_timer_interrupt_exit(regs);
 }
+#endif
 
 /*
  * Hypervisor decrementer interrupts shouldn't occur but are sometimes