aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/irq/manage.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index c498a1b8c621..7fd891c3a33d 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -635,6 +635,18 @@ int request_irq(unsigned int irq, irq_handler_t handler,
635 struct irq_desc *desc; 635 struct irq_desc *desc;
636 int retval; 636 int retval;
637 637
638 /*
639 * handle_IRQ_event() always ignores IRQF_DISABLED except for
640 * the _first_ irqaction (sigh). That can cause oopsing, but
641 * the behavior is classified as "will not fix" so we need to
642 * start nudging drivers away from using that idiom.
643 */
644 if ((irqflags & (IRQF_SHARED|IRQF_DISABLED))
645 == (IRQF_SHARED|IRQF_DISABLED))
646 pr_warning("IRQ %d/%s: IRQF_DISABLED is not "
647 "guaranteed on shared IRQs\n",
648 irq, devname);
649
638#ifdef CONFIG_LOCKDEP 650#ifdef CONFIG_LOCKDEP
639 /* 651 /*
640 * Lockdep wants atomic interrupt handlers: 652 * Lockdep wants atomic interrupt handlers: