瀏覽代碼

pcmcia: irq probe can be done without risking an IRQ storm

Nowdays you can ask for an IRQ to be allocated but not enabled, when PCMCIA
was written this was not true and this feature is thus not used

[linux@dominikbrodowski.net: add comment and ifdef to avoid compilation
 breakage at least on alpha]
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Alan Cox 17 年之前
父節點
當前提交
635416ef39
共有 1 個文件被更改,包括 9 次插入0 次删除
  1. 9 0
      drivers/pcmcia/pcmcia_resource.c

+ 9 - 0
drivers/pcmcia/pcmcia_resource.c

@@ -812,6 +812,15 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
 		type = IRQF_SHARED;
 		type = IRQF_SHARED;
 
 
 #ifdef CONFIG_PCMCIA_PROBE
 #ifdef CONFIG_PCMCIA_PROBE
+
+#ifdef IRQ_NOAUTOEN
+	/* if the underlying IRQ infrastructure allows for it, only allocate
+	 * the IRQ, but do not enable it
+	 */
+	if (!(req->Attributes & IRQ_HANDLE_PRESENT))
+		type |= IRQ_NOAUTOEN;
+#endif /* IRQ_NOAUTOEN */
+
 	if (s->irq.AssignedIRQ != 0) {
 	if (s->irq.AssignedIRQ != 0) {
 		/* If the interrupt is already assigned, it must be the same */
 		/* If the interrupt is already assigned, it must be the same */
 		irq = s->irq.AssignedIRQ;
 		irq = s->irq.AssignedIRQ;