Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sparc64: Set IRQF_DISABLED on LDC channel IRQs.

With lots of virtual devices it's easy to generate a lot of
events and chew up the kernel IRQ stack.

Reported-by: hyl <heyongli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

+2 -2
+2 -2
arch/sparc/kernel/ldc.c
··· 1242 1242 snprintf(lp->tx_irq_name, LDC_IRQ_NAME_MAX, "%s TX", name); 1243 1243 1244 1244 err = request_irq(lp->cfg.rx_irq, ldc_rx, 1245 - IRQF_SAMPLE_RANDOM | IRQF_SHARED, 1245 + IRQF_SAMPLE_RANDOM | IRQF_DISABLED | IRQF_SHARED, 1246 1246 lp->rx_irq_name, lp); 1247 1247 if (err) 1248 1248 return err; 1249 1249 1250 1250 err = request_irq(lp->cfg.tx_irq, ldc_tx, 1251 - IRQF_SAMPLE_RANDOM | IRQF_SHARED, 1251 + IRQF_SAMPLE_RANDOM | IRQF_DISABLED | IRQF_SHARED, 1252 1252 lp->tx_irq_name, lp); 1253 1253 if (err) { 1254 1254 free_irq(lp->cfg.rx_irq, lp);