From patchwork Sun Apr 23 14:48:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhu Yanjun X-Patchwork-Id: 13221373 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B19A0C77B78 for ; Sun, 23 Apr 2023 14:52:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230492AbjDWOwU (ORCPT ); Sun, 23 Apr 2023 10:52:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230473AbjDWOwS (ORCPT ); Sun, 23 Apr 2023 10:52:18 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D0A8CDE; Sun, 23 Apr 2023 07:52:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682261537; x=1713797537; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=riLZi2effh8u4Uro4E8PQpRTP+7UfnPIysrb7hhnVKA=; b=LBGqriCAeKLT3IZqkuagMMQfrVxHfsBusoQmrsK96om1O2jVlfdOEIFL GX/AX4GPqwIvRHxdu+RmRjH67UD5ZW/RBXGEsu9UskPeNWqiU+V5/rDB3 J/JYPvUWHTRPd+nq/nv+g5+8OLL0RSMVjFXH8niiyY9N5O50i11cG412B zpBKN7mQb1aQgehFnu5qg+d1Olb+AWp5pmPBexbii7pSoDimvD+F9sRRf GB7jjiDPKNnw2tMjRFb85S+BIomHuCaM4VVszGZORthK99RDc3LJSeCi9 PQsRjKpdqQB4sVMlDstnZ04xAufRJWaU4o9gyHhdii79o0MIZ2qOXH0aX Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10689"; a="325890233" X-IronPort-AV: E=Sophos;i="5.99,220,1677571200"; d="scan'208";a="325890233" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2023 07:52:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10689"; a="836680663" X-IronPort-AV: E=Sophos;i="5.99,220,1677571200"; d="scan'208";a="836680663" Received: from unknown (HELO intel-71.bj.intel.com) ([10.238.154.71]) by fmsmga001.fm.intel.com with ESMTP; 23 Apr 2023 07:52:03 -0700 From: Zhu Yanjun To: jgg@ziepe.ca, leon@kernel.org, zyjzyj2000@gmail.com, linux-rdma@vger.kernel.org, parav@nvidia.com, netdev@vger.kernel.org, rain.1986.08.12@gmail.com Cc: Zhu Yanjun Subject: [PATCH rdma-next v4 3/8] RDMA/nldev: Add dellink function pointer Date: Sun, 23 Apr 2023 22:48:17 +0800 Message-Id: <20230423144822.1797465-4-yanjun.zhu@intel.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230423144822.1797465-1-yanjun.zhu@intel.com> References: <20230423144822.1797465-1-yanjun.zhu@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Zhu Yanjun The newlink function pointer is added. And the sock listening on port 4791 is added in the newlink function. So the dellink function is needed to remove the sock. Tested-by: Rain River Signed-off-by: Zhu Yanjun --- drivers/infiniband/core/nldev.c | 6 ++++++ include/rdma/rdma_netlink.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c index d5d3e4f0de77..97a62685ed5b 100644 --- a/drivers/infiniband/core/nldev.c +++ b/drivers/infiniband/core/nldev.c @@ -1758,6 +1758,12 @@ static int nldev_dellink(struct sk_buff *skb, struct nlmsghdr *nlh, return -EINVAL; } + if (device->link_ops) { + err = device->link_ops->dellink(device); + if (err) + return err; + } + ib_unregister_device_and_put(device); return 0; } diff --git a/include/rdma/rdma_netlink.h b/include/rdma/rdma_netlink.h index c2a79aeee113..bf9df004061f 100644 --- a/include/rdma/rdma_netlink.h +++ b/include/rdma/rdma_netlink.h @@ -5,6 +5,7 @@ #include #include +#include enum { RDMA_NLDEV_ATTR_EMPTY_STRING = 1, @@ -114,6 +115,7 @@ struct rdma_link_ops { struct list_head list; const char *type; int (*newlink)(const char *ibdev_name, struct net_device *ndev); + int (*dellink)(struct ib_device *dev); }; void rdma_link_register(struct rdma_link_ops *ops);