linux/drivers/xen
Ian Campbell fed5ea87e0 xen: don't leak IRQs over suspend/resume.
On resume irq_info[*].evtchn is reset to 0 since event channel mappings
are not preserved over suspend/resume. The other contents of irq_info
is preserved to allow rebind_evtchn_irq() to function.

However when a device resumes it will try to unbind from the
previous IRQ (e.g.  blkfront goes blkfront_resume() -> blkif_free() ->
unbind_from_irqhandler() -> unbind_from_irq()). This will fail due to the
check for VALID_EVTCHN in unbind_from_irq() and the IRQ is leaked. The
device will then continue to resume and allocate a new IRQ, eventually
leading to find_unbound_irq() panic()ing.

Fix this by changing unbind_from_irq() to handle teardown of interrupts
which have type!=IRQT_UNBOUND but are not currently bound to a specific
event channel.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stable Kernel <stable@kernel.org>
2009-12-03 11:14:55 -08:00
..
xenbus xen: wait up to 5 minutes for device connetion 2009-12-03 11:14:49 -08:00
xenfs headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
balloon.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
cpu_hotplug.c xen: honour VCPU availability on boot 2009-04-08 14:25:51 -07:00
events.c xen: don't leak IRQs over suspend/resume. 2009-12-03 11:14:55 -08:00
evtchn.c includecheck fix: drivers/xen, evtchn.c 2009-09-20 16:02:20 +05:30
features.c xen: clean up asm/xen/hypervisor.h 2008-12-16 21:50:31 +01:00
grant-table.c xen: clean up asm/xen/hypervisor.h 2008-12-16 21:50:31 +01:00
Kconfig Merge commit 'origin/master' into for-linus/xen/master 2009-04-07 13:34:16 -07:00
Makefile xen: make -fstack-protector work under Xen 2009-09-09 16:37:39 -07:00
manage.c xen: don't call dpm_resume_noirq() with interrupts disabled. 2009-12-03 11:14:53 -08:00
sys-hypervisor.c xen: drop kexec bits from /sys/hypervisor since kexec isn't implemented yet 2009-03-30 09:27:07 -07:00
xencomm.c xen: portability clean up and some minor clean up for xencomm.c 2008-10-23 21:54:36 +02:00