]> git.baikalelectronics.ru Git - kernel.git/commit
x86/PCI: VMD: Fix infinite loop executing irq's
authorKeith Busch <keith.busch@intel.com>
Tue, 23 Aug 2016 21:36:42 +0000 (16:36 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 23 Aug 2016 21:36:42 +0000 (16:36 -0500)
commit5b05847f34163624a0e1e566e8dfef61234b56dc
treef04f76432839643639668f8b9e011fa3dffdf741
parent9a03ef2c320d21a8e8b5df7eb0e6b0985e038a87
x86/PCI: VMD: Fix infinite loop executing irq's

We can't initialize the list head on deletion as this causes the node to
point to itself, which causes an infinite loop if vmd_irq() happens to be
servicing that node.

The list initialization was trying to fix a bug from multiple calls to
disable the same IRQ.  Fix this instead by having the VMD driver track if
the interrupt is enabled.

[bhelgaas: changelog, add "Fixes"]
Fixes: 5b37bef4da56 ("x86/PCI: VMD: Initialize list item in IRQ disable")
Reported-by: Grzegorz Koczot <grzegorz.koczot@intel.com>
Tested-by: Miroslaw Drost <miroslaw.drost@intel.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by Jon Derrick: <jonathan.derrick@intel.com>
arch/x86/pci/vmd.c