PCI: make msi_free_irqs() to use msix_mask_irq() instead of open coded write
authorHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Fri, 19 Jun 2009 02:20:26 +0000 (19:20 -0700)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 19 Jun 2009 22:11:45 +0000 (15:11 -0700)
Use msix_mask_irq() instead of direct use of writel, so as not to clear
preserved bits in the Vector Control register [31:1].

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/msi.c

index 944e45e4a84f369636aad2f537c4f04c3855ccde..d9f06fbfa0bf8fd56051d5f1bd2252fdc52377f8 100644 (file)
@@ -653,10 +653,7 @@ static int msi_free_irqs(struct pci_dev* dev)
 
        list_for_each_entry_safe(entry, tmp, &dev->msi_list, list) {
                if (entry->msi_attrib.is_msix) {
-                       writel(1, entry->mask_base + entry->msi_attrib.entry_nr
-                                 * PCI_MSIX_ENTRY_SIZE
-                                 + PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
-
+                       msix_mask_irq(entry, 1);
                        if (list_is_last(&entry->list, &dev->msi_list))
                                iounmap(entry->mask_base);
                }