From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754358AbbKXKfR (ORCPT ); Tue, 24 Nov 2015 05:35:17 -0500 Received: from mail-pa0-f46.google.com ([209.85.220.46]:36134 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753028AbbKXKfM (ORCPT ); Tue, 24 Nov 2015 05:35:12 -0500 From: Sudip Mukherjee To: Matias Bjorling Cc: linux-kernel@vger.kernel.org, Sudip Mukherjee Subject: [PATCH v2 3/5] lightnvm: create dma pool first Date: Tue, 24 Nov 2015 16:04:58 +0530 Message-Id: <1448361300-26718-3-git-send-email-sudipm.mukherjee@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1448361300-26718-1-git-send-email-sudipm.mukherjee@gmail.com> References: <1448361300-26718-1-git-send-email-sudipm.mukherjee@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If create_dma_pool() fails then we are returning the error code but we have already added the device to the list. Lets add the device to the list only if everything is successfully initialized. Signed-off-by: Sudip Mukherjee --- drivers/lightnvm/core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c index 2ab561f..d288996 100644 --- a/drivers/lightnvm/core.c +++ b/drivers/lightnvm/core.c @@ -313,10 +313,6 @@ int nvm_register(struct request_queue *q, char *disk_name, if (ret) goto err_init; - down_write(&nvm_lock); - list_add(&dev->devices, &nvm_devices); - up_write(&nvm_lock); - if (dev->ops->max_phys_sect > 1) { dev->ppalist_pool = dev->ops->create_dma_pool(dev->q, "ppalist"); @@ -326,6 +322,10 @@ int nvm_register(struct request_queue *q, char *disk_name, } } + down_write(&nvm_lock); + list_add(&dev->devices, &nvm_devices); + up_write(&nvm_lock); + return 0; err_init: kfree(dev); -- 1.9.1