diff options
author | Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> | 2009-06-18 22:20:26 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-06-19 18:11:45 -0400 |
commit | 2af5066f664cb011cf17d2e4414491fe24597e07 (patch) | |
tree | fe9f787a3eac10cfef1bbc7e18ee7800c281f773 /drivers/pci | |
parent | f598282f5145036312d90875d0ed5c14b49fd8a7 (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')
-rw-r--r-- | drivers/pci/msi.c | 5 |
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 | } |