diff options
author | David S. Miller <davem@davemloft.net> | 2010-04-13 00:28:45 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-13 00:28:45 -0700 |
commit | 9343af084c7e8911897b0883042ee690cee3aaef (patch) | |
tree | 6211a4bdc84690bec6530d27a3abb19f5e8bb8f3 /kernel/irq/manage.c | |
parent | e182c77cc291456eed127b1472952ddb59a81a9d (diff) | |
parent | 0d0fb0f9c5fddef4a10242fe3337f00f528a3099 (diff) | |
download | linux-9343af084c7e8911897b0883042ee690cee3aaef.tar.gz linux-9343af084c7e8911897b0883042ee690cee3aaef.tar.bz2 linux-9343af084c7e8911897b0883042ee690cee3aaef.zip |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Conflicts:
lib/Kconfig.debug
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 398fda155f6e..704e488730a5 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -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; |