linux-imx/kernel/irq
Sebastian Frias dbec46d6ee genirq/generic_chip: Add irq_unmap callback
commit ee26c013cd upstream.

Without this patch irq_domain_disassociate() cannot properly release the
interrupt. In fact, irq_map_generic_chip() checks a bit on 'gc->installed'
but said bit is never cleared, only set.

Commit 088f40b7b0 ("genirq: Generic chip: Add linear irq domain support")
added irq_map_generic_chip() function and also stated "This lacks a removal
function for now".

This commit provides an implementation of an unmap function that can be
called by irq_domain_disassociate().

[ tglx: Made the function static and removed the export as we have neither
  	a prototype nor a modular user. ]

[js] use irq_get_irq_data, irq_set_chip_and_handler, and
     irq_set_chip_data in 3.12

Fixes: 088f40b7b0 ("genirq: Generic chip: Add linear irq domain support")
Signed-off-by: Sebastian Frias <sf84@laposte.net>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Mason <slash.tmp@free.fr>
Cc: Jason Cooper <jason@lakedaemon.net>
Link: http://lkml.kernel.org/r/579F5C5A.2070507@laposte.net
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
2016-11-08 16:38:25 +01:00
..
autoprobe.c genirq: Handle pending irqs in irq_startup() 2012-02-15 11:56:59 +01:00
chip.c genirq: Add kerneldoc for irq_disable. 2013-05-29 11:09:10 +02:00
debug.h irq: hide debug macros so they don't collide with others. 2012-04-23 12:30:03 -04:00
devres.c devres: fix possible use after free 2011-07-25 20:57:14 -07:00
dummychip.c genirq: Export dummy_irq_chip 2012-08-21 16:14:23 +02:00
generic-chip.c genirq/generic_chip: Add irq_unmap callback 2016-11-08 16:38:25 +01:00
handle.c random: make 'add_interrupt_randomness()' do something sane 2012-07-14 20:17:28 -04:00
internals.h genirq: Prevent proc race against freeing of irq descriptors 2015-01-26 14:39:30 +01:00
irqdesc.c genirq: Prevent proc race against freeing of irq descriptors 2015-01-26 14:39:30 +01:00
irqdomain.c Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-07-13 14:52:21 -07:00
Kconfig genirq: Generic irq chip requires IRQ_DOMAIN 2014-02-20 11:08:02 -08:00
Makefile irq: add irq_domain translation infrastructure 2011-07-28 01:32:04 -06:00
manage.c genirq: Prevent chip buslock deadlock 2016-03-03 12:45:54 +01:00
migration.c genirq: Introduce irq_do_set_affinity() to reduce duplicated code 2012-05-24 22:36:40 +02:00
pm.c irq: Enable all irqs unconditionally in irq_resume 2013-12-11 22:37:54 -08:00
proc.c genirq: Fix race in register_irq_proc() 2015-10-28 16:38:07 +01:00
resend.c genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD 2015-08-19 08:36:34 +02:00
settings.h genirq: Add support for per-cpu dev_id interrupts 2011-10-03 15:35:26 +02:00
spurious.c genirq: Sanitize spurious interrupt detection of threaded irqs 2014-07-02 12:06:34 +02:00