From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-20.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26862C4338F for ; Fri, 23 Jul 2021 14:09:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0E63D60EB1 for ; Fri, 23 Jul 2021 14:09:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235385AbhGWN2n (ORCPT ); Fri, 23 Jul 2021 09:28:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:35132 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235391AbhGWN2j (ORCPT ); Fri, 23 Jul 2021 09:28:39 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4D84760EB4; Fri, 23 Jul 2021 14:09:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1627049353; bh=ZjLvOmzqi0R/gZHt4+asaVHLpatmXCpAJZ1abJMhj5o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YNwofrMRy9sRxJJ+wdOawJD16RdjaH7ALKUEycWnuEuCdtVA+HzA3WBriqxJL3SK2 93tHc0Dd7t6KNslj1W69Lpbxw4tpVaLzqrbjIdbgqNO/Hca+UxeODqwOv1ml025QB4 yg9be7IH4jhumkMIkHkowcazI9LHNwmw7JjQUQGsWjzEm9opzaG2Np+tIsjBgeTq/9 zDM2eqw2uKNugXAGrr7l+0b3MQ+aBLQvdCba2IabYBNChyfkydufTBCgoUu+/dSKJ9 g/v4fkE25mhte44U4o7OcQVuEuVIbUnhcvtyzWA2ua2Pxf3tf+SGUWwGqhe2CxriTH Su9BKRts+WnbQ== From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , Faisal Latif , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Mustafa Ismail , Steve Wise , "Tatyana E. Nikolova" Subject: [PATCH rdma-next 1/3] RDMA/iwcm: Release resources if iw_cm module initialization fails Date: Fri, 23 Jul 2021 17:08:55 +0300 Message-Id: X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky The failure during iw_cm module initialization partially left the system with unreleased memory and other resources. Rewrite the module init/exit routines in such way that netlink commands will be opened only after successful initialization. Fixes: b493d91d333e ("iwcm: common code for port mapper") Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/iwcm.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/infiniband/core/iwcm.c b/drivers/infiniband/core/iwcm.c index 42261152b489..2b47073c61a6 100644 --- a/drivers/infiniband/core/iwcm.c +++ b/drivers/infiniband/core/iwcm.c @@ -1186,29 +1186,34 @@ static int __init iw_cm_init(void) ret = iwpm_init(RDMA_NL_IWCM); if (ret) - pr_err("iw_cm: couldn't init iwpm\n"); - else - rdma_nl_register(RDMA_NL_IWCM, iwcm_nl_cb_table); + return ret; + iwcm_wq = alloc_ordered_workqueue("iw_cm_wq", 0); if (!iwcm_wq) - return -ENOMEM; + goto err_alloc; iwcm_ctl_table_hdr = register_net_sysctl(&init_net, "net/iw_cm", iwcm_ctl_table); if (!iwcm_ctl_table_hdr) { pr_err("iw_cm: couldn't register sysctl paths\n"); - destroy_workqueue(iwcm_wq); - return -ENOMEM; + goto err_sysctl; } + rdma_nl_register(RDMA_NL_IWCM, iwcm_nl_cb_table); return 0; + +err_sysctl: + destroy_workqueue(iwcm_wq); +err_alloc: + iwpm_exit(RDMA_NL_IWCM); + return -ENOMEM; } static void __exit iw_cm_cleanup(void) { + rdma_nl_unregister(RDMA_NL_IWCM); unregister_net_sysctl_table(iwcm_ctl_table_hdr); destroy_workqueue(iwcm_wq); - rdma_nl_unregister(RDMA_NL_IWCM); iwpm_exit(RDMA_NL_IWCM); } -- 2.31.1