[dpdk-dev] [PATCH 1/2] net/mlx5: fix link status query
Shahaf Shuler
shahafs at mellanox.com
Wed Jan 25 13:42:58 CET 2017
Trying to query the link status through new kernel ioctl API
ETHTOOL_GLINKSETTINGS was always failing due to kernel bug.
The bug was fixed on version 4.9
this patch uses the legacy ioctl API for lower kernels.
Fixes: 188408719888 ("net/mlx5: fix support for newer link speeds")
CC: stable at dpdk.org
Signed-off-by: Shahaf Shuler <shahafs at mellanox.com>
---
while the ETHTOOL_GLINKSETTINGS API was introduced on kernel v4.6 [1]
the bug was fixed only on kernel v4.9 [2]
[1] https://github.com/torvalds/linux/commit/3f1ac7a700d039c61d8d8b99f28d605d489a60cf
[2] https://github.com/torvalds/linux/commit/8006f6bf5e39f11c697f48df20382b81d2f2f8b8
---
drivers/net/mlx5/mlx5_ethdev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 8efdff7..e77238f 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -46,6 +46,7 @@
#include <netinet/in.h>
#include <linux/ethtool.h>
#include <linux/sockios.h>
+#include <linux/version.h>
#include <fcntl.h>
/* DPDK headers don't like -pedantic. */
@@ -697,7 +698,7 @@ struct priv *
/**
* Retrieve physical link information (unlocked version using new ioctl from
- * Linux 4.5).
+ * Linux 4.9).
*
* @param dev
* Pointer to Ethernet device structure.
@@ -707,7 +708,7 @@ struct priv *
static int
mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
{
-#ifdef ETHTOOL_GLINKSETTINGS
+#if KERNEL_VERSION(4, 9, 0) <= LINUX_VERSION_CODE
struct priv *priv = mlx5_get_priv(dev);
struct ethtool_link_settings edata = {
.cmd = ETHTOOL_GLINKSETTINGS,
--
1.8.3.1
More information about the dev
mailing list