Commit 74ffd553 authored by Ingo Molnar's avatar Ingo Molnar Committed by Linus Torvalds

[PATCH] genirq: sem2mutex probe_sem -> probing_active

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: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent d1bef4ed
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* comes in on to an unassigned handler will get stuck with * comes in on to an unassigned handler will get stuck with
* "IRQ_WAITING" cleared and the interrupt disabled. * "IRQ_WAITING" cleared and the interrupt disabled.
*/ */
static DECLARE_MUTEX(probe_sem); static DEFINE_MUTEX(probing_active);
/** /**
* probe_irq_on - begin an interrupt autodetect * probe_irq_on - begin an interrupt autodetect
...@@ -31,7 +31,7 @@ unsigned long probe_irq_on(void) ...@@ -31,7 +31,7 @@ unsigned long probe_irq_on(void)
irq_desc_t *desc; irq_desc_t *desc;
unsigned int i; unsigned int i;
down(&probe_sem); mutex_lock(&probing_active);
/* /*
* something may have generated an irq long ago and we want to * something may have generated an irq long ago and we want to
* flush such a longstanding irq before considering it as spurious. * flush such a longstanding irq before considering it as spurious.
...@@ -132,7 +132,7 @@ unsigned int probe_irq_mask(unsigned long val) ...@@ -132,7 +132,7 @@ unsigned int probe_irq_mask(unsigned long val)
} }
spin_unlock_irq(&desc->lock); spin_unlock_irq(&desc->lock);
} }
up(&probe_sem); mutex_unlock(&probing_active);
return mask & val; return mask & val;
} }
...@@ -177,10 +177,11 @@ int probe_irq_off(unsigned long val) ...@@ -177,10 +177,11 @@ int probe_irq_off(unsigned long val)
} }
spin_unlock_irq(&desc->lock); spin_unlock_irq(&desc->lock);
} }
up(&probe_sem); mutex_unlock(&probing_active);
if (nr_irqs > 1) if (nr_irqs > 1)
irq_found = -irq_found; irq_found = -irq_found;
return irq_found; return irq_found;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment