In the too many bad blocks error handling case, we should release all
the alloced resources instead direct return, otherwise it will cause
memory leak.

Fixes: 2deeefc02dff ("lightnvm: pblk: fail gracefully on line alloc. failure")
Signed-off-by: Wei Yongjun <[email protected]>
---
 drivers/lightnvm/pblk-init.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
index 537e98f..a26f4e6 100644
--- a/drivers/lightnvm/pblk-init.c
+++ b/drivers/lightnvm/pblk-init.c
@@ -1083,7 +1083,8 @@ static int pblk_lines_init(struct pblk *pblk)
 
        if (!nr_free_chks) {
                pblk_err(pblk, "too many bad blocks prevent for sane 
instance\n");
-               return -EINTR;
+               ret = -EINTR;
+               goto fail_free_lines;
        }
 
        pblk_set_provision(pblk, nr_free_chks);

Reply via email to