diff --git a/drivers/mtd/nand/mtk_ecc.c b/drivers/mtd/nand/mtk_ecc.c index f38e2bb1953e902818af184204c45b788d71ce38..6c3a4aab0b487114181c000ff4c068d3c17329f8 100644 --- a/drivers/mtd/nand/mtk_ecc.c +++ b/drivers/mtd/nand/mtk_ecc.c @@ -273,8 +273,10 @@ int mtk_ecc_enable(struct mtk_ecc *ecc, struct mtk_ecc_config *config) mtk_ecc_wait_idle(ecc, op); ret = mtk_ecc_config(ecc, config); - if (ret) + if (ret) { + mutex_unlock(&ecc->lock); return ret; + } if (config->mode != ECC_NFI_MODE || op != ECC_ENCODE) { init_completion(&ecc->done);