From b8ff8b1d30575e67423ef066c0d046c5b2c6fe04 Mon Sep 17 00:00:00 2001 From: Yifeng Zhao Date: Mon, 6 Jun 2022 14:23:51 +0800 Subject: [PATCH] drivers: rk_nand: fix compile warning warning: drivers/rk_nand/rk_nand_blk.c:559 nand_blk_register() warn: missing error code 'ret' Signed-off-by: Yifeng Zhao Change-Id: I89c8358805da5db24b5ff91961a062dbdfcceead --- drivers/rk_nand/rk_nand_blk.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/rk_nand/rk_nand_blk.c b/drivers/rk_nand/rk_nand_blk.c index 7d1c46966481..a4be57920186 100644 --- a/drivers/rk_nand/rk_nand_blk.c +++ b/drivers/rk_nand/rk_nand_blk.c @@ -539,12 +539,15 @@ static int nand_blk_register(struct nand_blk_ops *nand_ops) nand_ops->quit = 0; nand_ops->nand_th_quited = 0; - mtd_read_temp_buffer = kmalloc(MTD_RW_SECTORS * 512, - GFP_KERNEL | GFP_DMA); - ret = register_blkdev(nand_ops->major, nand_ops->name); if (ret) - return -1; + return ret; + + mtd_read_temp_buffer = kmalloc(MTD_RW_SECTORS * 512, GFP_KERNEL | GFP_DMA); + if (!mtd_read_temp_buffer) { + ret = -ENOMEM; + goto mtd_buffer_error; + } init_completion(&nand_ops->thread_exit); init_waitqueue_head(&nand_ops->thread_wq); @@ -555,8 +558,10 @@ static int nand_blk_register(struct nand_blk_ops *nand_ops) INIT_LIST_HEAD(&nand_ops->rq_list); nand_ops->tag_set = kzalloc(sizeof(*nand_ops->tag_set), GFP_KERNEL); - if (!nand_ops->tag_set) + if (!nand_ops->tag_set) { + ret = -ENOMEM; goto tag_set_error; + } nand_ops->rq = blk_mq_init_sq_queue(nand_ops->tag_set, &rk_nand_mq_ops, 1, BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING); @@ -601,6 +606,9 @@ static int nand_blk_register(struct nand_blk_ops *nand_ops) rq_init_error: kfree(nand_ops->tag_set); tag_set_error: + kfree(mtd_read_temp_buffer); + mtd_read_temp_buffer = NULL; +mtd_buffer_error: unregister_blkdev(nand_ops->major, nand_ops->name); return ret;