staging: ced401: fix double unlock bug
authorDaeseok Youn <daeseok.youn@gmail.com>
Tue, 25 Feb 2014 01:13:49 +0000 (10:13 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2014 16:39:27 +0000 (08:39 -0800)
After spin_lock() is called, all of if-else conditions in this brace
should reach the end of else and spin_unlock() must be called.
So It doesn't need to call spin_unlock() without a return statement
for handling an error.

Also sparse says:
drivers/staging/ced1401/usb1401.c:1080:28: warning:
 context imbalance in 'Handle1401Esc' - unexpected unlock

Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ced1401/usb1401.c

index f441e33660fe2ed213241aa6ad9f54a907282c93..c281fdabb4ed16ca6ddfd80f0692d513a1fbcb16 100644 (file)
@@ -1054,7 +1054,6 @@ static int Handle1401Esc(DEVICE_EXTENSION *pdx, char *pCh,
                                /*  This can never happen, really */
                                dev_err(&pdx->interface->dev,
                                        "ERROR: DMA setup while transfer still waiting\n");
-                               spin_unlock(&pdx->stagedLock);
                        } else {
                                if ((wTransType == TM_EXTTOHOST)
                                    || (wTransType == TM_EXTTO1401)) {