• H
    MIPS: lantiq: Fix IPI interrupt handling · 5343e91f
    Hauke Mehrtens 提交于
    commit 2b4dba55 upstream.
    
    This makes SMP on the vrx200 work again, by removing all the MIPS CPU
    interrupt specific code and making it fully use the generic MIPS CPU
    interrupt controller.
    
    The mti,cpu-interrupt-controller from irq-mips-cpu.c now handles the CPU
    interrupts and also the IPI interrupts which are used to communication
    between the CPUs in a SMP system. The generic interrupt code was
    already used before but the interrupt vectors were overwritten again
    when we called set_vi_handler() in the lantiq interrupt driver and we
    also provided our own plat_irq_dispatch() function which overwrote the
    weak generic implementation. Now the code uses the generic handler for
    the MIPS CPU interrupts including the IPI interrupts and registers a
    handler for the CPU interrupts which are handled by the lantiq ICU with
    irq_set_chained_handler() which was already called before.
    
    Calling the set_c0_status() function is also not needed any more because
    the generic MIPS CPU interrupt already activates the needed bits.
    
    Fixes: 1eed4004 ("MIPS: smp-mt: Use CPU interrupt controller IPI IRQ domain support")
    Cc: stable@kernel.org # v4.12
    Signed-off-by: NHauke Mehrtens <hauke@hauke-m.de>
    Signed-off-by: NPaul Burton <paul.burton@mips.com>
    Cc: jhogan@kernel.org
    Cc: ralf@linux-mips.org
    Cc: john@phrozen.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-mips@vger.kernel.org
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    5343e91f
irq.c 8.7 KB