Skip to content

Commit

Permalink
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/lin…
Browse files Browse the repository at this point in the history
…ux/kernel/git/tip/linux-2.6-tip

* 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  genirq: Force MSI irq handlers to run with interrupts disabled
  • Loading branch information
Linus Torvalds committed Apr 6, 2010
2 parents 14e71e4 + 753649d commit 94c4fce
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions kernel/irq/manage.c
Original file line number Diff line number Diff line change
Expand Up @@ -757,6 +757,16 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
if (new->flags & IRQF_ONESHOT)
desc->status |= IRQ_ONESHOT;

/*
* Force MSI interrupts to run with interrupts
* disabled. The multi vector cards can cause stack
* overflows due to nested interrupts when enough of
* them are directed to a core and fire at the same
* time.
*/
if (desc->msi_desc)
new->flags |= IRQF_DISABLED;

if (!(desc->status & IRQ_NOAUTOEN)) {
desc->depth = 0;
desc->status &= ~IRQ_DISABLED;
Expand Down

0 comments on commit 94c4fce

Please sign in to comment.