drivers/clocksource/tcb_clksrc.c: fix init sequence
setup_irq() was called before clockevents_register_device() which is needed by the irq handler. Bug was reproducible by restarting the kernel using kexec (reliable crash). Signed-off-by: Nikolaus Voss <n.voss@weinmann.de> Cc: David Brownell <dbrownell@users.sourceforge.net> Cc: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
52dbb90509
commit
1817dc0370
@@ -196,9 +196,9 @@ static void __init setup_clkevents(struct atmel_tc *tc, int clk32k_divisor_idx)
|
|||||||
clkevt.clkevt.min_delta_ns = clockevent_delta2ns(1, &clkevt.clkevt) + 1;
|
clkevt.clkevt.min_delta_ns = clockevent_delta2ns(1, &clkevt.clkevt) + 1;
|
||||||
clkevt.clkevt.cpumask = cpumask_of(0);
|
clkevt.clkevt.cpumask = cpumask_of(0);
|
||||||
|
|
||||||
setup_irq(irq, &tc_irqaction);
|
|
||||||
|
|
||||||
clockevents_register_device(&clkevt.clkevt);
|
clockevents_register_device(&clkevt.clkevt);
|
||||||
|
|
||||||
|
setup_irq(irq, &tc_irqaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* !CONFIG_GENERIC_CLOCKEVENTS */
|
#else /* !CONFIG_GENERIC_CLOCKEVENTS */
|
||||||
|
Reference in New Issue
Block a user