summary refs log tree commit diff
path: root/net/caif
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2010-05-26 05:16:48 +0000
committerDavid S. Miller <davem@davemloft.net>2010-05-29 00:18:50 -0700
commit97dc875f90a7b88a9fa476c256345c0d40fcdf6c (patch)
tree53979f092d9f6792f44b940d70a9b9920316bfc5 /net/caif
parentc196b02ce60d7b1f9bc62a62c5706d4d58fbfc5a (diff)
downloadlinux-97dc875f90a7b88a9fa476c256345c0d40fcdf6c.tar.gz
caif: unlock on error path in cfserl_receive()
There was an spin_unlock missing on the error path.  The spin_lock was
tucked in with the declarations so it was hard to spot.  I added a new
line.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Sjur Brændeland <sjurbren@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/caif')
-rw-r--r--net/caif/cfserl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/caif/cfserl.c b/net/caif/cfserl.c
index cb4325a3dc83..965c5baace40 100644
--- a/net/caif/cfserl.c
+++ b/net/caif/cfserl.c
@@ -59,16 +59,18 @@ static int cfserl_receive(struct cflayer *l, struct cfpkt *newpkt)
 	u8 stx = CFSERL_STX;
 	int ret;
 	u16 expectlen = 0;
+
 	caif_assert(newpkt != NULL);
 	spin_lock(&layr->sync);
 
 	if (layr->incomplete_frm != NULL) {
-
 		layr->incomplete_frm =
 		    cfpkt_append(layr->incomplete_frm, newpkt, expectlen);
 		pkt = layr->incomplete_frm;
-		if (pkt == NULL)
+		if (pkt == NULL) {
+			spin_unlock(&layr->sync);
 			return -ENOMEM;
+		}
 	} else {
 		pkt = newpkt;
 	}