-
Matthew Wilcox authored
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>
0ca4b6b0