]> git.baikalelectronics.ru Git - kernel.git/commit
irqchip/mips-gic: Fix local interrupts
authorMarcin Nowakowski <marcin.nowakowski@imgtec.com>
Wed, 25 Jan 2017 14:08:25 +0000 (15:08 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Wed, 8 Feb 2017 14:25:50 +0000 (14:25 +0000)
commit71cdb5fc409130f64ba03978b84a2783617582e9
tree35687eed0ebea602c32604e0107c0c87385897b3
parent7b986b6d169aef196c415bc4c68d25ef7a81d91c
irqchip/mips-gic: Fix local interrupts

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
52f2979b5e1 ("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: 52f2979b5e1 ("irqchip/mips-gic: Fix local interrupts")
Signed-off-by: Marcin 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: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-mips-gic.c