aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/irq')
-rw-r--r--kernel/irq/manage.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 69a3d7b9414c..0b23ff71b9b0 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -753,6 +753,16 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
753 if (new->flags & IRQF_ONESHOT) 753 if (new->flags & IRQF_ONESHOT)
754 desc->status |= IRQ_ONESHOT; 754 desc->status |= IRQ_ONESHOT;
755 755
756 /*
757 * Force MSI interrupts to run with interrupts
758 * disabled. The multi vector cards can cause stack
759 * overflows due to nested interrupts when enough of
760 * them are directed to a core and fire at the same
761 * time.
762 */
763 if (desc->msi_desc)
764 new->flags |= IRQF_DISABLED;
765
756 if (!(desc->status & IRQ_NOAUTOEN)) { 766 if (!(desc->status & IRQ_NOAUTOEN)) {
757 desc->depth = 0; 767 desc->depth = 0;
758 desc->status &= ~IRQ_DISABLED; 768 desc->status &= ~IRQ_DISABLED;