summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2010-08-10 18:03:12 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2010-08-11 08:59:20 -0700
commite73790a57abc1320b3c3a94da43ae24359687d7c (patch)
tree10aafbf75687e9e0b07f2b892f208f2ab44db2c9
parent7bb671e3d053226f870c333f701924986b39ee7f (diff)
downloadlinux-stable-e73790a57abc1320b3c3a94da43ae24359687d7c.tar.gz
linux-stable-e73790a57abc1320b3c3a94da43ae24359687d7c.tar.bz2
linux-stable-e73790a57abc1320b3c3a94da43ae24359687d7c.zip
drivers/char/n_gsm.c: add missing spin_unlock_irqrestore
Add a spin_unlock_irqrestore missing on the error path. Converting the return to break leads to the spin_unlock_irqrestore at the end of the function. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression E1; @@ * spin_lock_irqsave(E1,...); <+... when != E1 if (...) { ... when != E1 * return ...; } ...+> * spin_unlock_irqrestore(E1,...); // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Cc: Greg Kroah-Hartman <gregkh@suse.de> Cc: Alan Cox <alan@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/char/n_gsm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/n_gsm.c b/drivers/char/n_gsm.c
index 099105e0894e..04ef3ef0a422 100644
--- a/drivers/char/n_gsm.c
+++ b/drivers/char/n_gsm.c
@@ -919,7 +919,7 @@ static void gsm_dlci_data_sweep(struct gsm_mux *gsm)
else
len = gsm_dlci_data_output_framed(gsm, dlci);
if (len < 0)
- return;
+ break;
/* DLCI empty - try the next */
if (len == 0)
i++;