USB: atm/cxacru, fix lock imbalance
authorJiri Slaby <jirislaby@gmail.com>
Wed, 11 Mar 2009 20:47:36 +0000 (21:47 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 17 Mar 2009 21:01:28 +0000 (14:01 -0700)
We do not hold mutex in one place in cxacru_cm, but unlock it on fail path.
Fix this.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Simon Arlott <cxacru@fire.lp0.eu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/atm/cxacru.c

index 5ed4ae07bac108cd5f3f3999676c7031e6d5f2a5..6789089e2461ec4e59f70240859eaa907fedbffc 100644 (file)
@@ -485,7 +485,7 @@ static int cxacru_cm(struct cxacru_data *instance, enum cxacru_cm_request cm,
                        usb_err(instance->usbatm, "requested transfer size too large (%d, %d)\n",
                                wbuflen, rbuflen);
                ret = -ENOMEM;
-               goto fail;
+               goto err;
        }
 
        mutex_lock(&instance->cm_serialize);
@@ -565,6 +565,7 @@ static int cxacru_cm(struct cxacru_data *instance, enum cxacru_cm_request cm,
        dbg("cm %#x", cm);
 fail:
        mutex_unlock(&instance->cm_serialize);
+err:
        return ret;
 }