]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
pcmcia: irq probe can be done without risking an IRQ storm
authorAlan Cox <alan@lxorguk.ukuu.org.uk>
Mon, 16 Jun 2008 12:35:15 +0000 (14:35 +0200)
committerDominik Brodowski <linux@dominikbrodowski.net>
Tue, 24 Jun 2008 13:33:41 +0000 (15:33 +0200)
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>
drivers/pcmcia/pcmcia_resource.c

index c8f77b889d42ffe6887cbe812a55e0482592eaeb..78af59415930ea93830372e78585f4fcf6bb61a4 100644 (file)
@@ -812,6 +812,15 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
                type = IRQF_SHARED;
 
 #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 the interrupt is already assigned, it must be the same */
                irq = s->irq.AssignedIRQ;