diff options
Diffstat (limited to 'arch/powerpc/sysdev/mpic_u3msi.c')
-rw-r--r-- | arch/powerpc/sysdev/mpic_u3msi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/sysdev/mpic_u3msi.c b/arch/powerpc/sysdev/mpic_u3msi.c index 70fbd5694a8b..2cbc7e29b85f 100644 --- a/arch/powerpc/sysdev/mpic_u3msi.c +++ b/arch/powerpc/sysdev/mpic_u3msi.c | |||
@@ -107,15 +107,16 @@ static u64 find_u4_magic_addr(struct pci_dev *pdev, unsigned int hwirq) | |||
107 | static void u3msi_teardown_msi_irqs(struct pci_dev *pdev) | 107 | static void u3msi_teardown_msi_irqs(struct pci_dev *pdev) |
108 | { | 108 | { |
109 | struct msi_desc *entry; | 109 | struct msi_desc *entry; |
110 | irq_hw_number_t hwirq; | ||
110 | 111 | ||
111 | for_each_pci_msi_entry(entry, pdev) { | 112 | for_each_pci_msi_entry(entry, pdev) { |
112 | if (entry->irq == NO_IRQ) | 113 | if (entry->irq == NO_IRQ) |
113 | continue; | 114 | continue; |
114 | 115 | ||
116 | hwirq = virq_to_hw(entry->irq); | ||
115 | irq_set_msi_desc(entry->irq, NULL); | 117 | irq_set_msi_desc(entry->irq, NULL); |
116 | msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, | ||
117 | virq_to_hw(entry->irq), 1); | ||
118 | irq_dispose_mapping(entry->irq); | 118 | irq_dispose_mapping(entry->irq); |
119 | msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, hwirq, 1); | ||
119 | } | 120 | } |
120 | 121 | ||
121 | return; | 122 | return; |