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 <weiyongj...@huawei.com>
---
 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;

Reply via email to