aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/msi.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 61c46d66c01e..be1df85e5e2d 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -558,12 +558,12 @@ static int msi_free_irqs(struct pci_dev* dev)
558 558
559 list_for_each_entry_safe(entry, tmp, &dev->msi_list, list) { 559 list_for_each_entry_safe(entry, tmp, &dev->msi_list, list) {
560 if (entry->msi_attrib.type == PCI_CAP_ID_MSIX) { 560 if (entry->msi_attrib.type == PCI_CAP_ID_MSIX) {
561 if (list_is_last(&entry->list, &dev->msi_list))
562 iounmap(entry->mask_base);
563
564 writel(1, entry->mask_base + entry->msi_attrib.entry_nr 561 writel(1, entry->mask_base + entry->msi_attrib.entry_nr
565 * PCI_MSIX_ENTRY_SIZE 562 * PCI_MSIX_ENTRY_SIZE
566 + PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET); 563 + PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
564
565 if (list_is_last(&entry->list, &dev->msi_list))
566 iounmap(entry->mask_base);
567 } 567 }
568 list_del(&entry->list); 568 list_del(&entry->list);
569 kfree(entry); 569 kfree(entry);