Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp1387752pxv; Fri, 23 Jul 2021 07:13:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyX2bCsHJJy8HwxPUq0f3TF4le8A/v472OHJA2p/wnugngZQxRtZe8QAilE3SPYxl99GlBA X-Received: by 2002:a17:906:844b:: with SMTP id e11mr4941661ejy.446.1627049636410; Fri, 23 Jul 2021 07:13:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627049636; cv=none; d=google.com; s=arc-20160816; b=eO0XtkrYNkCU7V6OXCXxykKSW/uSZic0FX6xKiJYWMEcS+F/dSA6PlrLuDMmyoPysh JTgRTiYnlhQfPvgIubUCD0fp/xR52NJPZ3rCbxputhslSMqo4meZSMopOAGdXo9kw2UW AvyH6qNhLXy5nZaiXhlE8VzCfpAjOlQERGvHcpKWqzu3RSrDw9zOiTrNlv8ZXKCe5eRX qEDeSYHERPw5tfG74fAPVKkQ+lgpnboVb9appv87UQt4iOej2WPeHzFUVHDSwDvoOVdj VT1MyOGpGi7XM6SEectdJYe9LyoXM3Q0j+5vL6ZACpfCsy+yNPAlcriVhR6hgTWRoQGL XQMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=92ilBolkgLjgcvG6gafwqGUjp79s5KAV3lhoqER9h6Y=; b=bigvneCGnhxIbyW8cCTvIvurF+gw0ioD7qsYajhgKNc5vb6+Ee9nuKdFulHnaviMJP GezNDCBTjpF/NpywMvUTE1cUirA6psZhwSQQKYiMS8G6XxK6ZEndonFYivhDuzcaV4VV WAKZ3FdZ1knnb3caOsQl7JRh6S1pCSzeK82bYkXofVTHVYwPiPt9J+PB1uhmxnIcgcoI X5ifsUv7dbmA4oMn5t+wRvNCd4H+27PFuaehpo4jVGAtpF5NdCU+Dk9/FvuvDYkzmN1+ kTYvf4arI1pCztXytEY1IvrYm9LlzTQqnl6nOpCIAFSfND2MmwValLuSxma03sns9sqT eX/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YNwofrMR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g2si15820608edb.596.2021.07.23.07.13.32; Fri, 23 Jul 2021 07:13:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YNwofrMR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235383AbhGWN2n (ORCPT + 99 others); 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-kernel@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