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 Content-Length: 1287 Lines: 43 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/