linux-stable-rt/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
Kconfig
Makefile
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
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
grant-table.c
manage.c xen: don't call dpm_resume_noirq() with interrupts disabled. 2009-12-03 11:14:53 -08:00
sys-hypervisor.c
xencomm.c