diff options
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r-- | drivers/pci/msi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index a825d78fd0aa..5099636a6e5f 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c | |||
@@ -207,6 +207,8 @@ static void msix_mask_irq(struct msi_desc *desc, u32 flag) | |||
207 | desc->masked = __msix_mask_irq(desc, flag); | 207 | desc->masked = __msix_mask_irq(desc, flag); |
208 | } | 208 | } |
209 | 209 | ||
210 | #ifdef CONFIG_GENERIC_HARDIRQS | ||
211 | |||
210 | static void msi_set_mask_bit(struct irq_data *data, u32 flag) | 212 | static void msi_set_mask_bit(struct irq_data *data, u32 flag) |
211 | { | 213 | { |
212 | struct msi_desc *desc = irq_data_get_msi(data); | 214 | struct msi_desc *desc = irq_data_get_msi(data); |
@@ -230,6 +232,8 @@ void unmask_msi_irq(struct irq_data *data) | |||
230 | msi_set_mask_bit(data, 0); | 232 | msi_set_mask_bit(data, 0); |
231 | } | 233 | } |
232 | 234 | ||
235 | #endif /* CONFIG_GENERIC_HARDIRQS */ | ||
236 | |||
233 | void __read_msi_msg(struct msi_desc *entry, struct msi_msg *msg) | 237 | void __read_msi_msg(struct msi_desc *entry, struct msi_msg *msg) |
234 | { | 238 | { |
235 | BUG_ON(entry->dev->current_state != PCI_D0); | 239 | BUG_ON(entry->dev->current_state != PCI_D0); |
@@ -337,8 +341,10 @@ static void free_msi_irqs(struct pci_dev *dev) | |||
337 | if (!entry->irq) | 341 | if (!entry->irq) |
338 | continue; | 342 | continue; |
339 | nvec = 1 << entry->msi_attrib.multiple; | 343 | nvec = 1 << entry->msi_attrib.multiple; |
344 | #ifdef CONFIG_GENERIC_HARDIRQS | ||
340 | for (i = 0; i < nvec; i++) | 345 | for (i = 0; i < nvec; i++) |
341 | BUG_ON(irq_has_action(entry->irq + i)); | 346 | BUG_ON(irq_has_action(entry->irq + i)); |
347 | #endif | ||
342 | } | 348 | } |
343 | 349 | ||
344 | arch_teardown_msi_irqs(dev); | 350 | arch_teardown_msi_irqs(dev); |