aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2011-03-17 14:43:07 +0300
committerThomas Gleixner <tglx@linutronix.de>2011-03-17 15:52:30 +0100
commit1c389795c15d349c2c7b23baf927e16e86ca3ae8 (patch)
treecc06eb6e38ad3cd291e9420ec5203a89c77bf3cc /kernel/irq
parentcris: Use generic show_interrupts() (diff)
downloadlinux-dev-1c389795c15d349c2c7b23baf927e16e86ca3ae8.tar.xz
linux-dev-1c389795c15d349c2c7b23baf927e16e86ca3ae8.zip
genirq: Fix incorrect unlock in __setup_irq()
goto out_thread is called before we take the lock. It causes a gcc warning: "kernel/irq/manage.c:858: warning: ‘flags’ may be used uninitialized in this function" [ tglx: Moved unlock before free_cpumask_var() ] Signed-off-by: Dan Carpenter <error27@gmail.com> LKML-Reference: <20110317114307.GJ2008@bicker> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/irq')
-rw-r--r--kernel/irq/manage.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index acd599a43bfb..0a2aa73e536c 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1064,10 +1064,10 @@ mismatch:
ret = -EBUSY;
out_mask:
+ raw_spin_unlock_irqrestore(&desc->lock, flags);
free_cpumask_var(mask);
out_thread:
- raw_spin_unlock_irqrestore(&desc->lock, flags);
if (new->thread) {
struct task_struct *t = new->thread;