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 <huaicheng@xxxxxxxxxxxxxxx>
wrote:
Signed-off-by: Huaicheng Li <huaicheng@xxxxxxxxxxxxxxx>
---
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[i].bb_list);
+ kfree(pblk->luns);
return ret;
}
}
--
2.13.6
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.