aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/msi.c
diff options
context:
space:
mode:
authorHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>2009-06-18 22:20:26 -0400
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-06-19 18:11:45 -0400
commit2af5066f664cb011cf17d2e4414491fe24597e07 (patch)
treefe9f787a3eac10cfef1bbc7e18ee7800c281f773 /drivers/pci/msi.c
parentf598282f5145036312d90875d0ed5c14b49fd8a7 (diff)
PCI: make msi_free_irqs() to use msix_mask_irq() instead of open coded write
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>
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r--drivers/pci/msi.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 944e45e4a84f..d9f06fbfa0bf 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -653,10 +653,7 @@ static int msi_free_irqs(struct pci_dev* dev)
653 653
654 list_for_each_entry_safe(entry, tmp, &dev->msi_list, list) { 654 list_for_each_entry_safe(entry, tmp, &dev->msi_list, list) {
655 if (entry->msi_attrib.is_msix) { 655 if (entry->msi_attrib.is_msix) {
656 writel(1, entry->mask_base + entry->msi_attrib.entry_nr 656 msix_mask_irq(entry, 1);
657 * PCI_MSIX_ENTRY_SIZE
658 + PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
659
660 if (list_is_last(&entry->list, &dev->msi_list)) 657 if (list_is_last(&entry->list, &dev->msi_list))
661 iounmap(entry->mask_base); 658 iounmap(entry->mask_base);
662 } 659 }