From patchwork Wed Apr 18 13:50:04 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: 38417 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 30F58A48D; Wed, 18 Apr 2018 15:49:45 +0200 (CEST) Received: from mail-wr0-f193.google.com (mail-wr0-f193.google.com [209.85.128.193]) by dpdk.org (Postfix) with ESMTP id 6B6225F3B for ; Wed, 18 Apr 2018 15:49:41 +0200 (CEST) Received: by mail-wr0-f193.google.com with SMTP id q6-v6so5053706wrd.6 for ; Wed, 18 Apr 2018 06:49:41 -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:in-reply-to:references :in-reply-to:references; bh=NPIJ7UMIEJqcL/K5WKMZBwECtckolem7ix2NK1xdM28=; b=muQCtjqQh1LuHu5RyVH8m0iNk5saPRy/pW/8Ex4LiNnVw7Ug3CgwEasfxLOeK01qzd zUkVrOp/1VIkOWIuFgd+WdZVZajpXyqozbPk061fuwnxxMfJXlYx7EEI92E/Ivb4hc5h lfAAfXw5N/6Pg9fPFk4/z5KuLyW2xhJbz1rLGI9No5qVSmccLda1kvJCX+HXnYZEVGd7 S0HazCrlrPG5hxO2Ir+YMmkDmqxJ23mwRtwZHFSRK/RsPlhGyx38arda813AE/3w5RV/ qffiqIG35tCWMtCW2Q/V2llwqcceduh0qrIRFsXSf32rxxK8u4a6Exv9l35RF8KtB2vy ycxg== 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:in-reply-to :references:in-reply-to:references; bh=NPIJ7UMIEJqcL/K5WKMZBwECtckolem7ix2NK1xdM28=; b=J0uLsreHX+48dTWH07/HNrLbVsHd1ETIf2NVVEs48e7FG/WHfdanDKrhJXUfUDi+yf dQKhcE+hsK4kLbutV4bGqQBuHePTG9lZkSMKnoOdMArsCu0dtLDK8eXaaCzGqAR9Cvfq emD+Iqy4VABcBxbqDkSnYg53Rp3GL/U/FGAvFKCANSE180VJpsU7y3fYrptcJLMfFr4H gHxw2izvZVeBmPX5tA1PCJalOJZkmuukRckZYzRpRXC06AYNOHTd3NhNAhYhPDtE8tq0 /CkHPuiPh0AbJ49XRve1mkw4mUHcCN6rNEfrGR/gQDpvMBWxmVwMhoztxsE6jvuV8+aW su4Q== X-Gm-Message-State: ALQs6tDCp8e1CoOybpcC2Nh7/5xU/zeVmfsCCVeGVRUUQjrHl48naeBZ V7HzjZxXX6T3uZchnd7NTM+Fskqo5w== X-Google-Smtp-Source: AIpwx4+YubvK3TfGC0U8eTvPOB3MzRRViFDTJFXcZroi2vn+6h2FCxwkr/H9tNChqthIDCuhYhYJxw== X-Received: by 10.28.74.91 with SMTP id x88mr1979323wma.53.1524059381013; Wed, 18 Apr 2018 06:49:41 -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 t8sm1590683wmc.20.2018.04.18.06.49.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Apr 2018 06:49:40 -0700 (PDT) From: Nelio Laranjeiro To: dev@dpdk.org, Yongseok Koh Cc: Adrien Mazarguil Date: Wed, 18 Apr 2018 15:50:04 +0200 Message-Id: X-Mailer: git-send-email 2.17.0 In-Reply-To: References: In-Reply-To: References: Subject: [dpdk-dev] [PATCH v2 1/3] net/mlx5: more checks on MAC addresses 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" Verify MAC address before further process. Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_mac.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_mac.c b/drivers/net/mlx5/mlx5_mac.c index edc7a32ae..f24b5f759 100644 --- a/drivers/net/mlx5/mlx5_mac.c +++ b/drivers/net/mlx5/mlx5_mac.c @@ -71,7 +71,10 @@ mlx5_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index) const int vf = priv->config.vf; int ret; - assert(index < MLX5_MAX_MAC_ADDRESSES); + if (index >= MLX5_MAX_MAC_ADDRESSES) + return; + if (is_zero_ether_addr(&dev->data->mac_addrs[index])) + return; if (vf) mlx5_nl_mac_addr_remove(dev, &dev->data->mac_addrs[index], index); @@ -107,7 +110,14 @@ mlx5_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac, const int vf = priv->config.vf; unsigned int i; - assert(index < MLX5_MAX_MAC_ADDRESSES); + if (index >= MLX5_MAX_MAC_ADDRESSES) { + rte_errno = EINVAL; + return -rte_errno; + } + if (is_zero_ether_addr(mac)) { + rte_errno = EINVAL; + return -rte_errno; + } /* First, make sure this address isn't already configured. */ for (i = 0; (i != MLX5_MAX_MAC_ADDRESSES); ++i) { /* Skip this index, it's going to be reconfigured. */