]> git.baikalelectronics.ru Git - kernel.git/commit
Fix initialization of CMCI/CMCP interrupts
authorTony Luck <tony.luck@intel.com>
Wed, 20 Mar 2013 17:30:15 +0000 (10:30 -0700)
committerTony Luck <tony.luck@intel.com>
Tue, 2 Apr 2013 16:37:06 +0000 (09:37 -0700)
commit2c590934e006e9164f44824adc4b10832ef1e9d2
tree80421d00fe3c7c7502124e641c8918f129e90876
parentadf32e68de58ec97454a6a3d60666960f32b0930
Fix initialization of CMCI/CMCP interrupts

Back 2010 during a revamp of the irq code some initializations
were moved from ia64_mca_init() to ia64_mca_late_init() in

commit e9d247e3139ac605b0133da6a9be5f0c068fcd03
Cannot use register_percpu_irq() from ia64_mca_init()

But this was hideously wrong. First of all these initializations
are now down far too late. Specifically after all the other cpus
have been brought up and initialized their own CMC vectors from
smp_callin(). Also ia64_mca_late_init() may be called from any cpu
so the line:
ia64_mca_cmc_vector_setup();       /* Setup vector on BSP */
is generally not executed on the BSP, and so the CMC vector isn't
setup at all on that processor.

Make use of the arch_early_irq_init() hook to get this code executed
at just the right moment: not too early, not too late.

Reported-by: Fred Hartnett <fred.hartnett@hp.com>
Tested-by: Fred Hartnett <fred.hartnett@hp.com>
Cc: stable@kernel.org # v2.6.37+
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/include/asm/mca.h
arch/ia64/kernel/irq.c
arch/ia64/kernel/mca.c