summaryrefslogtreecommitdiff
path: root/arch/x86/pci
diff options
context:
space:
mode:
authorKeith Busch <keith.busch@intel.com>2016-05-17 11:22:18 -0600
committerBjorn Helgaas <bhelgaas@google.com>2016-06-13 16:03:03 -0500
commit97e92306357583c1741f0a111c7befe8673b91ee (patch)
tree976e3a1c9b8276cdf75eaa5265332c4ee55b340c /arch/x86/pci
parentca8a8fabb10459753fba73cac0382076f0aab058 (diff)
x86/PCI: VMD: Initialize list item in IRQ disable
Multiple calls to disable an IRQ would have caused the driver to dereference a poisoned list item. This re-initializes the list to allow multiple requests to disable the IRQ. 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>
Diffstat (limited to 'arch/x86/pci')
-rw-r--r--arch/x86/pci/vmd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/pci/vmd.c b/arch/x86/pci/vmd.c
index b1662bf17937..3519a1578752 100644
--- a/arch/x86/pci/vmd.c
+++ b/arch/x86/pci/vmd.c
@@ -135,6 +135,7 @@ static void vmd_irq_disable(struct irq_data *data)
raw_spin_lock(&list_lock);
list_del_rcu(&vmdirq->node);
+ INIT_LIST_HEAD_RCU(&vmdirq->node);
raw_spin_unlock(&list_lock);
}