diff options
| author | Wim Van Sebroeck <wim@iguana.be> | 2007-05-11 19:03:13 +0000 | 
|---|---|---|
| committer | Wim Van Sebroeck <wim@iguana.be> | 2007-05-11 19:03:13 +0000 | 
| commit | 5c34202b8bf942da411b6599668a76b07449bbfd (patch) | |
| tree | 5719c361321eaddc8e4f1b0c8a7994f0e9a6fdd3 /kernel/irq/proc.c | |
| parent | 0d4804b31f91cfbcff6d62af0bc09a893a1c8ae0 (diff) | |
| parent | 1f8a6b658a943b4f04a1fc7b3a420360202c86cd (diff) | |
Merge /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'kernel/irq/proc.c')
| -rw-r--r-- | kernel/irq/proc.c | 15 | 
1 files changed, 11 insertions, 4 deletions
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c index 2db91eb54ad..ddde0ef9ccd 100644 --- a/kernel/irq/proc.c +++ b/kernel/irq/proc.c @@ -66,12 +66,19 @@ static int name_unique(unsigned int irq, struct irqaction *new_action)  {  	struct irq_desc *desc = irq_desc + irq;  	struct irqaction *action; +	unsigned long flags; +	int ret = 1; -	for (action = desc->action ; action; action = action->next) +	spin_lock_irqsave(&desc->lock, flags); +	for (action = desc->action ; action; action = action->next) {  		if ((action != new_action) && action->name && -				!strcmp(new_action->name, action->name)) -			return 0; -	return 1; +				!strcmp(new_action->name, action->name)) { +			ret = 0; +			break; +		} +	} +	spin_unlock_irqrestore(&desc->lock, flags); +	return ret;  }  void register_handler_proc(unsigned int irq, struct irqaction *action)  | 
