From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by dpdk.org (Postfix) with ESMTP id 6D8811B390 for ; Mon, 13 Nov 2017 15:49:51 +0100 (CET) Received: by mail-wm0-f68.google.com with SMTP id z3so5540436wme.3 for ; Mon, 13 Nov 2017 06:49:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=LPSLLb9tOvjMS5v7ty/9QXFt4SuZXIv+HY7uuADU/xs=; b=O1yozveIGJvTM72UDAvlRN6cq9eqTv/XLiSS2GZ7MriXOVl1jLfIe/YK6/1aEELrgx VbiI1yG5vpF8VfJfd6ne+MaG3nzeYclCZyjsHE4EKbMRGDgwzmnOXarQbQ1q67ZSoDw0 jS0mf8PBbtIzlT3rRsMajzmHkTKMXJJhdlKHQBr/NLPTfMuySbrGp9iWcaLljw7kTuDU GtsTtfuvLJNf1ba72Wz7IWLrYMece1uK35euU7Zoz/u/lGdVWqjN+NlRzGYiOq+BowNx 8BqA2HDf/E1LN/I5AvFBQyx+P+mx230EyHShOIkuMGHSPuKDRT+rvwNFkPeFdg6YR60C +vLw== 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; bh=LPSLLb9tOvjMS5v7ty/9QXFt4SuZXIv+HY7uuADU/xs=; b=H0mWC07BFU0aDjZUWQP+rAtyiehOe/kRPCIKBR4AEkWwxT9whbd4jZ6+MxvZEMYXKV GuJKdTClNjHK7bgQjItQglxWXl8ssDDZWogufDk2cZVPwqZ+wpB91T9lZxWV+amF0ibV IF/m6/N5cWq8/bMkujDr0Pa6TNwiuIEHamCwqnDDxq+TFUgOsbo60cwH7jLh5tZ4pv+C 0ql5ooeyskvfDI/5hkJwyh/72CbS9yYGo64PNHsG2TJbfwephbQzF3i+ZuOSigyYzo0i jryV0Ok5iUVRDbomUWP33jkCcoqmLhmcHgeGx82J8zTcbkrfGfl5uUkEo6JuzABjGRpa al5A== X-Gm-Message-State: AJaThX6t07M36ooilaHOQoDsK3IeBQboVU5VbFu54YoedoUifWSvVQyM huONLztNVD9kGKvIJVuxePQXc6yo X-Google-Smtp-Source: AGs4zMaXY8xePi+w7BHK3YI5QZ6Wb9L19sHxC6PYCEAcSRKgwgrPQOWLjeLambgUtkf3khXF/ws10w== X-Received: by 10.28.52.5 with SMTP id b5mr7269832wma.135.1510584591122; Mon, 13 Nov 2017 06:49:51 -0800 (PST) Received: from localhost ([2a00:23c5:bef3:400:4a51:b7ff:fe0b:4749]) by smtp.gmail.com with ESMTPSA id 80sm9873939wmk.14.2017.11.13.06.49.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 13 Nov 2017 06:49:50 -0800 (PST) From: luca.boccassi@gmail.com To: Edward Makarov Cc: Nelio Laranjeiro , dpdk stable Date: Mon, 13 Nov 2017 14:49:35 +0000 Message-Id: <20171113144938.30993-4-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171113144938.30993-1-luca.boccassi@gmail.com> References: <20171110161000.15369-16-luca.boccassi@gmail.com> <20171113144938.30993-1-luca.boccassi@gmail.com> Subject: [dpdk-stable] patch 'net/mlx5: fix link speed bitmasks' has been queued to LTS release 16.11.4 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Nov 2017 14:49:51 -0000 Hi, FYI, your patch has been queued to LTS release 16.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/15/17. So please shout if anyone has objections. Thanks. Kind regards, Luca Boccassi --- >>From 49b5ac15653bff7dc06a4ec7ee2a53e1590c94ef Mon Sep 17 00:00:00 2001 From: Edward Makarov Date: Fri, 10 Nov 2017 14:18:04 +0000 Subject: [PATCH] net/mlx5: fix link speed bitmasks [ upstream commit b113cb5ee6cec14a9892df1143217e358a58f5d6 ] The constant ETHTOOL_LINK_MODE_1000baseT_Full_BIT and the others like that in mlx5_link_update_unlocked_gs must be bit masks but unfortunately they are bit numbers. This commit fixes the issue. Fixes: 188408719888 ("net/mlx5: fix support for newer link speeds") Signed-off-by: Edward Makarov Acked-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_ethdev.c | 50 +++++++++++++++++++++--------------------- drivers/net/mlx5/mlx5_utils.h | 4 ++++ 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c index 8ffb2d861..2ea995f89 100644 --- a/drivers/net/mlx5/mlx5_ethdev.c +++ b/drivers/net/mlx5/mlx5_ethdev.c @@ -792,39 +792,39 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete) sc = ecmd->link_mode_masks[0] | ((uint64_t)ecmd->link_mode_masks[1] << 32); priv->link_speed_capa = 0; - if (sc & ETHTOOL_LINK_MODE_Autoneg_BIT) + if (sc & MLX5_BITSHIFT(ETHTOOL_LINK_MODE_Autoneg_BIT)) priv->link_speed_capa |= ETH_LINK_SPEED_AUTONEG; - if (sc & (ETHTOOL_LINK_MODE_1000baseT_Full_BIT | - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT)) + if (sc & (MLX5_BITSHIFT(ETHTOOL_LINK_MODE_1000baseT_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_1000baseKX_Full_BIT))) priv->link_speed_capa |= ETH_LINK_SPEED_1G; - if (sc & (ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT | - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT | - ETHTOOL_LINK_MODE_10000baseR_FEC_BIT)) + if (sc & (MLX5_BITSHIFT(ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_10000baseKR_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_10000baseR_FEC_BIT))) priv->link_speed_capa |= ETH_LINK_SPEED_10G; - if (sc & (ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT | - ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT)) + if (sc & (MLX5_BITSHIFT(ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT))) priv->link_speed_capa |= ETH_LINK_SPEED_20G; - if (sc & (ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT | - ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT | - ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT | - ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT)) + if (sc & (MLX5_BITSHIFT(ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT))) priv->link_speed_capa |= ETH_LINK_SPEED_40G; - if (sc & (ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT | - ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT | - ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT | - ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT)) + if (sc & (MLX5_BITSHIFT(ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT))) priv->link_speed_capa |= ETH_LINK_SPEED_56G; - if (sc & (ETHTOOL_LINK_MODE_25000baseCR_Full_BIT | - ETHTOOL_LINK_MODE_25000baseKR_Full_BIT | - ETHTOOL_LINK_MODE_25000baseSR_Full_BIT)) + if (sc & (MLX5_BITSHIFT(ETHTOOL_LINK_MODE_25000baseCR_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_25000baseKR_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_25000baseSR_Full_BIT))) priv->link_speed_capa |= ETH_LINK_SPEED_25G; - if (sc & (ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT | - ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT)) + if (sc & (MLX5_BITSHIFT(ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT))) priv->link_speed_capa |= ETH_LINK_SPEED_50G; - if (sc & (ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT | - ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT | - ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT | - ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT)) + if (sc & (MLX5_BITSHIFT(ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT) | + MLX5_BITSHIFT(ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT))) priv->link_speed_capa |= ETH_LINK_SPEED_100G; dev_link.link_duplex = ((ecmd->duplex == DUPLEX_HALF) ? ETH_LINK_HALF_DUPLEX : ETH_LINK_FULL_DUPLEX); diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h index a824787ff..f126979b7 100644 --- a/drivers/net/mlx5/mlx5_utils.h +++ b/drivers/net/mlx5/mlx5_utils.h @@ -35,6 +35,7 @@ #define RTE_PMD_MLX5_UTILS_H_ #include +#include #include #include #include @@ -61,6 +62,9 @@ !!(((bf)[((b) / (sizeof((bf)[0]) * CHAR_BIT))] & \ ((size_t)1 << ((b) % (sizeof((bf)[0]) * CHAR_BIT)))))) +/* Convert a bit number to the corresponding 64-bit mask */ +#define MLX5_BITSHIFT(v) (UINT64_C(1) << (v)) + /* Save and restore errno around argument evaluation. */ #define ERRNO_SAFE(x) ((errno = (int []){ errno, ((x), 0) }[0])) -- 2.11.0