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 Signed-off-by: Daeseok Youn <daeseok.youn@xxxxxxxxx> --- drivers/staging/ced1401/usb1401.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/ced1401/usb1401.c b/drivers/staging/ced1401/usb1401.c index efc310c..8195eb9 100644 --- a/drivers/staging/ced1401/usb1401.c +++ b/drivers/staging/ced1401/usb1401.c @@ -1053,7 +1053,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"); - spin_unlock(&pdx->stagedLock); } else { if ((wTransType == TM_EXTTOHOST) || (wTransType == TM_EXTTO1401)) { -- 1.7.9.5 --- _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel