From patchwork Tue Jul 24 06:50:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?N=C3=A9lio_Laranjeiro?= X-Patchwork-Id: 43290 X-Patchwork-Delegate: shahafs@mellanox.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AC4132C15; Tue, 24 Jul 2018 08:50:41 +0200 (CEST) Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by dpdk.org (Postfix) with ESMTP id 74565F72 for ; Tue, 24 Jul 2018 08:50:40 +0200 (CEST) Received: by mail-wm0-f66.google.com with SMTP id n11-v6so1352034wmc.2 for ; Mon, 23 Jul 2018 23:50:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=svEz7Fd3aGRaIHRnJAuMmX9q31vcGCImZm3rx4YrA/4=; b=AbHQxtpGatWYq2DgHfHKWwSojqcMr9JRugt86p7p9SnNgahp4zm4nqBUbwEmpQviY/ 8X2nHVF2XE210JxwM/4siJFQH9o7N4Wa1L/HWUNrzThnL6QoHGO0XD3Eu6NfylWS2Au7 YZpCVOA5GnPzxG1vLXloeQdmgYKSOM8aeE9CoyOSq1Ka8gPBVB52HrjHblvjpo1NAgd+ 8zqwgn0rB6iw4WxIZJZjYDxDFRNxQUcX5tTjj1i+amMyuwLf+91zKfz0LXtinbeek6VP PcekQbZO6xQeEmW3+w83PVCyXi/KRg09H8kwKbnFo4u7xyfMPE6ypmHlzJY4P2vwdZdw 5eZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=svEz7Fd3aGRaIHRnJAuMmX9q31vcGCImZm3rx4YrA/4=; b=pqAE8sxqQ5MfTfhdgUByP24r1JnG9so+Il+UPmE34YXfm1S1m4aT+ebG9+0DawjVp1 650RjXmYk4v3jrJMQsn2yQ0BFRxi7mhW1G6PRRK9J3A63RGX3IR+/PhE4NoHXEwaOKAJ X8A0W62gow7hUXxhCQFSVI/MM8QPkDgh3eNcWnSvvdkggs2BW0XFwxN7QGgkFDUxLL9l NvOvkT9J2LinfvfC2knDPu3mI5Yuw3EWm7FtkRtCscPSf7+vAInHO07eploW706xoJDx RE6eQ7qQBe42ngJFyYuGt/nX0lIyL2jjiFB2lbSizavHeyfwNP0OjzKBQgCgx39LL0AZ wliw== X-Gm-Message-State: AOUpUlF+pRWmAbbTif2w1ZZT2O2fVYia/XVkDG8FEFv3dAuoQzn4tM5Y 7Hud/ryKzZaJh3p326hh4bbmY0FzIw== X-Google-Smtp-Source: AAOMgpe8uCJArfjsykOtD5dpa+CZpcmHrLcQgEwHJ+IF8BBOywRiovTqjMgSNabk6Hetm4DECxlVPA== X-Received: by 2002:a1c:4d16:: with SMTP id o22-v6mr544241wmh.49.1532415039907; Mon, 23 Jul 2018 23:50:39 -0700 (PDT) Received: from laranjeiro-vm.dev.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id w204-v6sm1751807wmw.5.2018.07.23.23.50.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jul 2018 23:50:39 -0700 (PDT) From: Nelio Laranjeiro To: dev@dpdk.org, Yongseok Koh , Shahaf Shuler Cc: stable@dpdk.org, Zijie Pan Date: Tue, 24 Jul 2018 08:50:27 +0200 Message-Id: X-Mailer: git-send-email 2.18.0 Subject: [dpdk-dev] [PATCH] net/mlx5: fix route Netlink message overflow X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Route Netlink message socket is wrongly initialised by registering to the route link group. This causes the socket to receive all link message related to routes whereas the PMD do not expect to receive such information. In some situation it ends by filling the socket at a point that any new message cannot be exchanged. As the PMD is not expected to process such broadcast messages, the parameter in the nl_group in the function is also remove. Fixes: ccdcba53a3f4 ("net/mlx5: use Netlink to add/remove MAC addresses") Cc: stable@dpdk.org Signed-off-by: Zijie Pan Signed-off-by: Nelio Laranjeiro Acked-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c | 8 ++++---- drivers/net/mlx5/mlx5.h | 2 +- drivers/net/mlx5/mlx5_nl.c | 5 +---- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index c62a52fd5..612392a20 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -946,8 +946,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, rte_spinlock_init(&priv->uar_lock[i]); #endif /* Some internal functions rely on Netlink sockets, open them now. */ - priv->nl_socket_rdma = mlx5_nl_init(0, NETLINK_RDMA); - priv->nl_socket_route = mlx5_nl_init(RTMGRP_LINK, NETLINK_ROUTE); + priv->nl_socket_rdma = mlx5_nl_init(NETLINK_RDMA); + priv->nl_socket_route = mlx5_nl_init(NETLINK_ROUTE); priv->nl_sn = 0; priv->representor = !!switch_info->representor; priv->domain_id = RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID; @@ -1286,8 +1286,8 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, ibv_match[n] = NULL; struct mlx5_dev_spawn_data list[n]; - int nl_route = n ? mlx5_nl_init(0, NETLINK_ROUTE) : -1; - int nl_rdma = n ? mlx5_nl_init(0, NETLINK_RDMA) : -1; + int nl_route = n ? mlx5_nl_init(NETLINK_ROUTE) : -1; + int nl_rdma = n ? mlx5_nl_init(NETLINK_RDMA) : -1; unsigned int i; unsigned int u; diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 896158aed..65a45a34a 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -372,7 +372,7 @@ int mlx5_socket_connect(struct rte_eth_dev *priv); /* mlx5_nl.c */ -int mlx5_nl_init(uint32_t nlgroups, int protocol); +int mlx5_nl_init(int protocol); int mlx5_nl_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac, uint32_t index); int mlx5_nl_mac_addr_remove(struct rte_eth_dev *dev, struct ether_addr *mac, diff --git a/drivers/net/mlx5/mlx5_nl.c b/drivers/net/mlx5/mlx5_nl.c index 008cd2c31..0cc26f9f1 100644 --- a/drivers/net/mlx5/mlx5_nl.c +++ b/drivers/net/mlx5/mlx5_nl.c @@ -89,8 +89,6 @@ struct mlx5_nl_ifindex_data { /** * Opens a Netlink socket. * - * @param nl_groups - * Netlink group value (e.g. RTMGRP_LINK). * @param protocol * Netlink protocol (e.g. NETLINK_ROUTE, NETLINK_RDMA). * @@ -99,14 +97,13 @@ struct mlx5_nl_ifindex_data { * rte_errno is set. */ int -mlx5_nl_init(uint32_t nl_groups, int protocol) +mlx5_nl_init(int protocol) { int fd; int sndbuf_size = MLX5_SEND_BUF_SIZE; int rcvbuf_size = MLX5_RECV_BUF_SIZE; struct sockaddr_nl local = { .nl_family = AF_NETLINK, - .nl_groups = nl_groups, }; int ret;