[PATCH] genirq: sem2mutex probe_sem -> probing_active
authorIngo Molnar <mingo@elte.hu>
Thu, 29 Jun 2006 09:24:37 +0000 (02:24 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 29 Jun 2006 17:26:21 +0000 (10:26 -0700)
Convert the irq auto-probing semaphore to a mutex.  (This allows us to find
probing API usage bugs sooner, via the mutex debugging code.)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/irq/autoprobe.c

index 6f1e68a46cbc72b2d7844f03792902091c4dc740..d1f1e6f10a2382e1fad8a6d8ffb3d91e74ca7f63 100644 (file)
@@ -16,7 +16,7 @@
  * comes in on to an unassigned handler will get stuck with
  * "IRQ_WAITING" cleared and the interrupt disabled.
  */
-static DECLARE_MUTEX(probe_sem);
+static DEFINE_MUTEX(probing_active);
 
 /**
  *     probe_irq_on    - begin an interrupt autodetect
@@ -31,7 +31,7 @@ unsigned long probe_irq_on(void)
        irq_desc_t *desc;
        unsigned int i;
 
-       down(&probe_sem);
+       mutex_lock(&probing_active);
        /*
         * something may have generated an irq long ago and we want to
         * flush such a longstanding irq before considering it as spurious.
@@ -132,7 +132,7 @@ unsigned int probe_irq_mask(unsigned long val)
                }
                spin_unlock_irq(&desc->lock);
        }
-       up(&probe_sem);
+       mutex_unlock(&probing_active);
 
        return mask & val;
 }
@@ -177,10 +177,11 @@ int probe_irq_off(unsigned long val)
                }
                spin_unlock_irq(&desc->lock);
        }
-       up(&probe_sem);
+       mutex_unlock(&probing_active);
 
        if (nr_irqs > 1)
                irq_found = -irq_found;
+
        return irq_found;
 }