• Marcin Nowakowski's avatar
    irqchip/mips-gic: Fix local interrupts · 4cfffcfa
    Marcin Nowakowski authored
    Some local interrupts are not initialised properly at the moment and
    cannot be used since the domain's alloc method is never called for them.
    
    This has been observed earlier and partially fixed in commit
    e875bd66 ("irqchip/mips-gic: Fix local interrupts"), but that change
    still relied on the interrupt to be requested by an external driver (eg.
    drivers/clocksource/mips-gic-timer.c).
    
    This does however not solve the issue for interrupts that are not
    referenced by any driver through the device tree and results in
    request_irq() calls returning -ENOSYS. It can be observed when attempting
    to use perf tool to access hardware performance counters.
    
    Fix this by explicitly calling irq_create_fwspec_mapping() for local
    interrupts.
    
    Fixes: e875bd66 ("irqchip/mips-gic: Fix local interrupts")
    Signed-off-by: default avatarMarcin Nowakowski <marcin.nowakowski@imgtec.com>
    Cc: Paul Burton <paul.burton@imgtec.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Jason Cooper <jason@lakedaemon.net>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: linux-mips@linux-mips.org
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    4cfffcfa
irq-mips-gic.c 28.4 KB