]> git.baikalelectronics.ru Git - kernel.git/commit
x86: Fix interrupt leak due to migration
authorMatthew Wilcox <matthew@wil.cx>
Thu, 20 Nov 2008 21:09:33 +0000 (14:09 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 20 Nov 2008 21:17:40 +0000 (13:17 -0800)
commitfe8ce56068f49e6e10d011ef0b13a6b3b79b664c
tree69e25f61bf252f2db0c0d01244555f90ad48aaf1
parent56c39c84282290f7e934a9fccb9a0312993b4a6d
x86: Fix interrupt leak due to migration

When we migrate an interrupt from one CPU to another, we set the
move_in_progress flag and clean up the vectors later once they're not
being used.  If you're unlucky and call destroy_irq() before the vectors
become un-used, the move_in_progress flag is never cleared, which causes
the interrupt to become unusable.

This was discovered by Jesse Brandeburg for whom it manifested as an
MSI-X device refusing to use MSI-X mode when the driver was unloaded
and reloaded repeatedly.

Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/kernel/io_apic.c