On 02/23/2018 12:03 AM, Huaicheng Li wrote:
Please ignore my previous email as I found the memory is free'ed at
pblk_init()'s error handling logic.
Sorry for the interruption.

On Thu, Feb 22, 2018 at 3:01 PM, Huaicheng Li <huaich...@cs.uchicago.edu>

Signed-off-by: Huaicheng Li <huaich...@cs.uchicago.edu>
drivers/lightnvm/pblk-init.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
index 93d671ca518e..330665d91d8d 100644
--- a/drivers/lightnvm/pblk-init.c
+++ b/drivers/lightnvm/pblk-init.c
@@ -510,6 +510,7 @@ static int pblk_luns_init(struct pblk *pblk, struct
ppa_addr *luns)
                 if (ret) {
                         while (--i >= 0)
+                       kfree(pblk->luns);
                         return ret;

No worries. The initialization part is pretty complex due to all the data structures being set up. I would love to have a clean initialization function, which cleans up after it self. But being able to share the "fail" bringup and tear-down code is very helpful and makes other parts easier.

Reply via email to