diff options
author | Julia Lawall <julia@diku.dk> | 2010-08-10 18:03:12 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-11 08:59:20 -0700 |
commit | e73790a57abc1320b3c3a94da43ae24359687d7c (patch) | |
tree | 10aafbf75687e9e0b07f2b892f208f2ab44db2c9 /drivers/char | |
parent | 7bb671e3d053226f870c333f701924986b39ee7f (diff) | |
download | op-kernel-dev-e73790a57abc1320b3c3a94da43ae24359687d7c.zip op-kernel-dev-e73790a57abc1320b3c3a94da43ae24359687d7c.tar.gz |
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>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/n_gsm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/n_gsm.c b/drivers/char/n_gsm.c index 099105e..04ef3ef 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++; |