From patchwork Fri Apr 28 09:39:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhu Yanjun X-Patchwork-Id: 13226142 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 DC98BC77B60 for ; Fri, 28 Apr 2023 09:43:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345623AbjD1JnL (ORCPT ); Fri, 28 Apr 2023 05:43:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229993AbjD1JnK (ORCPT ); Fri, 28 Apr 2023 05:43:10 -0400 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7846A44AB for ; Fri, 28 Apr 2023 02:43:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682674989; x=1714210989; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=riLZi2effh8u4Uro4E8PQpRTP+7UfnPIysrb7hhnVKA=; b=Xpb+Lr4Oipb+d2+EF1Q6ZUA5jD3Ywe5owBRwct56SWrhUs0CSHwMxKIS 6eTsB5AJghgYjsH3VyjXvuzGP6dR6yIW4VCv4sIBk/kw8Alnc9zy1LGsa JqajC19mFZCVQKkQ0xCP7U6senBnWyTG+Oj7nWEALTuKnFo1ZqmvTXEAa 3POAk5z+anyYKy44uTHGxDtZsnpRFhlutHA3eo+oWharCjMdslcdYz1Nt KSuh8FADDS+JbK9lExzep/qymIieaybS0zP4yIXfWNd6V6Qswfwz37Hh8 VspGAQsprPw3idquy7H5s0RS4kO+ZZTlmK4X4eslCcS93/rSLoVPyZi/C Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10693"; a="328035155" X-IronPort-AV: E=Sophos;i="5.99,234,1677571200"; d="scan'208";a="328035155" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2023 02:43:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10693"; a="764220374" X-IronPort-AV: E=Sophos;i="5.99,234,1677571200"; d="scan'208";a="764220374" Received: from unknown (HELO intel-71.bj.intel.com) ([10.238.154.71]) by fmsmga004.fm.intel.com with ESMTP; 28 Apr 2023 02:43:07 -0700 From: Zhu Yanjun To: zyjzyj2000@gmail.com, jgg@ziepe.ca, leon@kernel.org, linux-rdma@vger.kernel.org, parav@nvidia.com, lehrer@gmail.com Cc: Zhu Yanjun , Rain River Subject: [PATCHv5 for-rc1 v5 3/8] RDMA/nldev: Add dellink function pointer Date: Fri, 28 Apr 2023 17:39:09 +0800 Message-Id: <20230428093914.2121131-4-yanjun.zhu@intel.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230428093914.2121131-1-yanjun.zhu@intel.com> References: <20230428093914.2121131-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);