powerpc: tick broadcast handler should call tick_receive_broadcast
Nicholas Piggin
reviewerRFC PATCH 1/1 powerpc: tick broadcast handler should call tick_receive_broadcast
Recently looking through the broadcast timers code, and I wonder if we should be calling tick_receive_broadcast() here? Our __timer_interrupt() works on the decrementer clockevent device, but we should be working on the broadcast device I think? We must get away with it somehow, but I see most other archs doing this and it seems to work, so I wonder if we should take broadcasts this way?
--- arch/powerpc/include/asm/time.h | 1 - arch/powerpc/kernel/smp.c | 4 ++-- arch/powerpc/kernel/time.c | 9 --------- 3 files changed, 2 insertions(+), 12 deletions(-)
arch/powerpc/include/asm/time.h +0 -1
@@ -28,7 +28,6 @@ extern struct clock_event_device decrementer_clockevent;struct rtc_time ;extern void to_tm (int tim,struct rtc_time * tm); -extern void tick_broadcast_ipi_handler (void );extern void generic_calibrate_decr (void );
arch/powerpc/kernel/smp.c +2 -2
@@ -155,7 +155,7 @@ static irqreturn_t reschedule_action(int irq, void *data)static irqreturn_t tick_broadcast_ipi_action (int irq,void *data) { -tick_broadcast_ipi_handler (); +tick_receive_broadcast ();return IRQ_HANDLED ; }
@@ -276,7 +276,7 @@ irqreturn_t smp_ipi_demux_relaxed(void)if (all &IPI_MESSAGE (PPC_MSG_RESCHEDULE ))scheduler_ipi ();if (all &IPI_MESSAGE (PPC_MSG_TICK_BROADCAST )) -tick_broadcast_ipi_handler (); +tick_receive_broadcast ();#ifdef CONFIG_NMI_IPI if (all &IPI_MESSAGE (PPC_MSG_NMI_IPI ))nmi_ipi_action (0 ,NULL );
arch/powerpc/kernel/time.c +0 -9
@@ -968,15 +968,6 @@ static int decrementer_shutdown(struct clock_event_device *dev)return 0 ; } -/* Interrupt handler for the timer broadcast IPI */ -void tick_broadcast_ipi_handler (void ) -{ -u64 *next_tb =this_cpu_ptr (&decrementers_next_tb); - - *next_tb =get_tb_or_rtc (); -__timer_interrupt (); -} -static void register_decrementer_clockevent (int cpu) {struct clock_event_device *dec = &per_cpu (decrementers, cpu);
Signature · 1 line
2.13.3