• Tony Luck's avatar
    Fix initialization of CMCI/CMCP interrupts · d303e9e9
    Tony Luck authored
    Back 2010 during a revamp of the irq code some initializations
    were moved from ia64_mca_init() to ia64_mca_late_init() in
    
    	commit c75f2aa1
    	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: default avatarFred Hartnett <fred.hartnett@hp.com>
    Tested-by: default avatarFred Hartnett <fred.hartnett@hp.com>
    Cc: stable@kernel.org # v2.6.37+
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    d303e9e9
mca.c 61.3 KB