On Mon, May 2, 2011 at 10:49 AM, Alex Williamson <alex.williamson at redhat.com> wrote: > We're likely to be sharing an interrupt line with other devices, > which means our handler might get called after we've turned off > the device via vga switcheroo. ?This can lead to all sorts of > badness, like nv04_fifo_isr() spewing "PFIFO still angry after > 100 spins, halt" to the console before the system enters a hard > hang. > > We can avoid this by simply checking if the device is still > enabled before processing an interrupt. ?To avoid races, flush > any inflight interrupts using synchronize_irq(). ?Note that > since pci_intx() is called after pci_save_state(), > pci_restore_state() will automatically re-enable INTx.
I still think we should just need the synchronize_irq followed by a check in the irq handler for all fs, or is there a race there I'm missing? Dave.