Add the missing unlock before return from function bsq_audit() in the error handling case. Fixes: 1d9d8be91788 ("fore200e: check for dma mapping failures") Signed-off-by: Wei Yongjun <weiyongjun1@xxxxxxxxxx> --- drivers/atm/fore200e.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c index 2b5dc8f..ffc07ab 100644 --- a/drivers/atm/fore200e.c +++ b/drivers/atm/fore200e.c @@ -1606,6 +1606,7 @@ int bsq_audit(int where, struct host_bsq* bsq, int scheme, int magn) if (dma_mapping_error(fore200e->dev, tpd->tsd[0].buffer)) { if (tx_copy) kfree(data); + spin_unlock_irqrestore(&fore200e->q_lock, flags); return -ENOMEM; } tpd->tsd[ 0 ].length = tx_len;