All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] net/mlx5: fix clang compilation
@ 2017-08-29 15:35 Nelio Laranjeiro
  2017-08-29 15:35 ` [PATCH 2/2] net/mlx5: improve stack usage during link update Nelio Laranjeiro
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Nelio Laranjeiro @ 2017-08-29 15:35 UTC (permalink / raw)
  To: dev; +Cc: gowrishankar.m, stable

On redhat 7.2 clang reports the following error:
   CC mlx5_rxmode.o
 /drivers/net/mlx5/mlx5_ethdev.c:820:32: error: field 'edata' with variable
  sized type 'struct ethtool_link_settings' not at the end of a struct or
  class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]
      struct ethtool_link_settings edata;

Use alternative approach to reserve buffer space on the stack.

Fixes: ef09a7fc7620 ("net/mlx5: fix inconsistent link status query")
Cc: gowrishankar.m@linux.vnet.ibm.com
Cc: stable@dpdk.org

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/mlx5/mlx5_ethdev.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 57f6237..0d2dae4 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -49,6 +49,7 @@
 #include <linux/sockios.h>
 #include <linux/version.h>
 #include <fcntl.h>
+#include <stdalign.h>
 
 #include <rte_atomic.h>
 #include <rte_ethdev.h>
@@ -804,12 +805,11 @@ static int
 mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 {
 	struct priv *priv = mlx5_get_priv(dev);
-	__extension__ struct {
-		struct ethtool_link_settings edata;
-		uint32_t link_mode_data[3 *
-					ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32];
-	} ecmd;
-
+	alignas(struct ethtool_link_settings)
+	uint8_t data[offsetof(struct ethtool_link_settings, link_mode_masks) +
+		     sizeof(uint32_t) *
+		     ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32 * 3];
+	struct ethtool_link_settings *ecmd = (void *)data;
 	struct ifreq ifr;
 	struct rte_eth_link dev_link;
 	uint64_t sc;
@@ -822,23 +822,23 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 	memset(&dev_link, 0, sizeof(dev_link));
 	dev_link.link_status = ((ifr.ifr_flags & IFF_UP) &&
 				(ifr.ifr_flags & IFF_RUNNING));
-	memset(&ecmd, 0, sizeof(ecmd));
-	ecmd.edata.cmd = ETHTOOL_GLINKSETTINGS;
-	ifr.ifr_data = (void *)&ecmd;
+	memset(ecmd, 0, sizeof(*ecmd));
+	ecmd->cmd = ETHTOOL_GLINKSETTINGS;
+	ifr.ifr_data = (void *)ecmd;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		DEBUG("ioctl(SIOCETHTOOL, ETHTOOL_GLINKSETTINGS) failed: %s",
 		      strerror(errno));
 		return -1;
 	}
-	ecmd.edata.link_mode_masks_nwords = -ecmd.edata.link_mode_masks_nwords;
+	ecmd->link_mode_masks_nwords = -ecmd->link_mode_masks_nwords;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		DEBUG("ioctl(SIOCETHTOOL, ETHTOOL_GLINKSETTINGS) failed: %s",
 		      strerror(errno));
 		return -1;
 	}
-	dev_link.link_speed = ecmd.edata.speed;
-	sc = ecmd.edata.link_mode_masks[0] |
-		((uint64_t)ecmd.edata.link_mode_masks[1] << 32);
+	dev_link.link_speed = ecmd->speed;
+	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)
 		priv->link_speed_capa |= ETH_LINK_SPEED_AUTONEG;
@@ -874,7 +874,7 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 		  ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT |
 		  ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT))
 		priv->link_speed_capa |= ETH_LINK_SPEED_100G;
-	dev_link.link_duplex = ((ecmd.edata.duplex == DUPLEX_HALF) ?
+	dev_link.link_duplex = ((ecmd->duplex == DUPLEX_HALF) ?
 				ETH_LINK_HALF_DUPLEX : ETH_LINK_FULL_DUPLEX);
 	dev_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
 				  ETH_LINK_SPEED_FIXED);
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] net/mlx5: improve stack usage during link update
  2017-08-29 15:35 [PATCH 1/2] net/mlx5: fix clang compilation Nelio Laranjeiro
@ 2017-08-29 15:35 ` Nelio Laranjeiro
  2017-08-30 13:56 ` [dpdk-stable] [PATCH 1/2] net/mlx5: fix clang compilation Ferruh Yigit
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Nelio Laranjeiro @ 2017-08-29 15:35 UTC (permalink / raw)
  To: dev; +Cc: stable

Allocate no more memory than necessary for the second call to
ETHTOOL_GLINKSETTINGS.

Cc: stable@dpdk.org

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/mlx5/mlx5_ethdev.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 0d2dae4..5af4d89 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -113,7 +113,6 @@ struct ethtool_link_settings {
 #define ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT 38
 #define ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT 39
 #endif
-#define ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32 (SCHAR_MAX)
 
 /**
  * Return private structure associated with an Ethernet device.
@@ -805,11 +804,7 @@ static int
 mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 {
 	struct priv *priv = mlx5_get_priv(dev);
-	alignas(struct ethtool_link_settings)
-	uint8_t data[offsetof(struct ethtool_link_settings, link_mode_masks) +
-		     sizeof(uint32_t) *
-		     ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32 * 3];
-	struct ethtool_link_settings *ecmd = (void *)data;
+	struct ethtool_link_settings gcmd = { .cmd = ETHTOOL_GLINKSETTINGS };
 	struct ifreq ifr;
 	struct rte_eth_link dev_link;
 	uint64_t sc;
@@ -822,15 +817,21 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 	memset(&dev_link, 0, sizeof(dev_link));
 	dev_link.link_status = ((ifr.ifr_flags & IFF_UP) &&
 				(ifr.ifr_flags & IFF_RUNNING));
-	memset(ecmd, 0, sizeof(*ecmd));
-	ecmd->cmd = ETHTOOL_GLINKSETTINGS;
-	ifr.ifr_data = (void *)ecmd;
+	ifr.ifr_data = (void *)&gcmd;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		DEBUG("ioctl(SIOCETHTOOL, ETHTOOL_GLINKSETTINGS) failed: %s",
 		      strerror(errno));
 		return -1;
 	}
-	ecmd->link_mode_masks_nwords = -ecmd->link_mode_masks_nwords;
+	gcmd.link_mode_masks_nwords = -gcmd.link_mode_masks_nwords;
+
+	alignas(struct ethtool_link_settings)
+	uint8_t data[offsetof(struct ethtool_link_settings, link_mode_masks) +
+		     sizeof(uint32_t) * gcmd.link_mode_masks_nwords];
+	struct ethtool_link_settings *ecmd = (void *)data;
+
+	*ecmd = gcmd;
+	ifr.ifr_data = (void *)ecmd;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		DEBUG("ioctl(SIOCETHTOOL, ETHTOOL_GLINKSETTINGS) failed: %s",
 		      strerror(errno));
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [dpdk-stable] [PATCH 1/2] net/mlx5: fix clang compilation
  2017-08-29 15:35 [PATCH 1/2] net/mlx5: fix clang compilation Nelio Laranjeiro
  2017-08-29 15:35 ` [PATCH 2/2] net/mlx5: improve stack usage during link update Nelio Laranjeiro
@ 2017-08-30 13:56 ` Ferruh Yigit
  2017-08-30 14:47 ` [PATCH v2 " Nelio Laranjeiro
  2017-08-30 14:47 ` [PATCH v2 2/2] net/mlx5: improve stack usage during link update Nelio Laranjeiro
  3 siblings, 0 replies; 6+ messages in thread
From: Ferruh Yigit @ 2017-08-30 13:56 UTC (permalink / raw)
  To: Nelio Laranjeiro, dev; +Cc: gowrishankar.m, stable

On 8/29/2017 4:35 PM, Nelio Laranjeiro wrote:
> On redhat 7.2 clang reports the following error:
>    CC mlx5_rxmode.o
>  /drivers/net/mlx5/mlx5_ethdev.c:820:32: error: field 'edata' with variable
>   sized type 'struct ethtool_link_settings' not at the end of a struct or
>   class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]
>       struct ethtool_link_settings edata;
> 
> Use alternative approach to reserve buffer space on the stack.
> 
> Fixes: ef09a7fc7620 ("net/mlx5: fix inconsistent link status query")
> Cc: gowrishankar.m@linux.vnet.ibm.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

Applied to dpdk-next-net/master, thanks.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 1/2] net/mlx5: fix clang compilation
  2017-08-29 15:35 [PATCH 1/2] net/mlx5: fix clang compilation Nelio Laranjeiro
  2017-08-29 15:35 ` [PATCH 2/2] net/mlx5: improve stack usage during link update Nelio Laranjeiro
  2017-08-30 13:56 ` [dpdk-stable] [PATCH 1/2] net/mlx5: fix clang compilation Ferruh Yigit
@ 2017-08-30 14:47 ` Nelio Laranjeiro
  2017-08-31 15:33   ` Ferruh Yigit
  2017-08-30 14:47 ` [PATCH v2 2/2] net/mlx5: improve stack usage during link update Nelio Laranjeiro
  3 siblings, 1 reply; 6+ messages in thread
From: Nelio Laranjeiro @ 2017-08-30 14:47 UTC (permalink / raw)
  To: dev, Ferruh Yigit; +Cc: gowrishankar.m, stable

On redhat 7.2 clang reports the following error:
   CC mlx5_rxmode.o
 /drivers/net/mlx5/mlx5_ethdev.c:820:32: error: field 'edata' with variable
  sized type 'struct ethtool_link_settings' not at the end of a struct or
  class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]
      struct ethtool_link_settings edata;

Use alternative approach to reserve buffer space on the stack.

Fixes: ef09a7fc7620 ("net/mlx5: fix inconsistent link status query")
Cc: gowrishankar.m@linux.vnet.ibm.com
Cc: stable@dpdk.org

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/mlx5/mlx5_ethdev.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 57f6237..0d2dae4 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -49,6 +49,7 @@
 #include <linux/sockios.h>
 #include <linux/version.h>
 #include <fcntl.h>
+#include <stdalign.h>
 
 #include <rte_atomic.h>
 #include <rte_ethdev.h>
@@ -804,12 +805,11 @@ static int
 mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 {
 	struct priv *priv = mlx5_get_priv(dev);
-	__extension__ struct {
-		struct ethtool_link_settings edata;
-		uint32_t link_mode_data[3 *
-					ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32];
-	} ecmd;
-
+	alignas(struct ethtool_link_settings)
+	uint8_t data[offsetof(struct ethtool_link_settings, link_mode_masks) +
+		     sizeof(uint32_t) *
+		     ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32 * 3];
+	struct ethtool_link_settings *ecmd = (void *)data;
 	struct ifreq ifr;
 	struct rte_eth_link dev_link;
 	uint64_t sc;
@@ -822,23 +822,23 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 	memset(&dev_link, 0, sizeof(dev_link));
 	dev_link.link_status = ((ifr.ifr_flags & IFF_UP) &&
 				(ifr.ifr_flags & IFF_RUNNING));
-	memset(&ecmd, 0, sizeof(ecmd));
-	ecmd.edata.cmd = ETHTOOL_GLINKSETTINGS;
-	ifr.ifr_data = (void *)&ecmd;
+	memset(ecmd, 0, sizeof(*ecmd));
+	ecmd->cmd = ETHTOOL_GLINKSETTINGS;
+	ifr.ifr_data = (void *)ecmd;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		DEBUG("ioctl(SIOCETHTOOL, ETHTOOL_GLINKSETTINGS) failed: %s",
 		      strerror(errno));
 		return -1;
 	}
-	ecmd.edata.link_mode_masks_nwords = -ecmd.edata.link_mode_masks_nwords;
+	ecmd->link_mode_masks_nwords = -ecmd->link_mode_masks_nwords;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		DEBUG("ioctl(SIOCETHTOOL, ETHTOOL_GLINKSETTINGS) failed: %s",
 		      strerror(errno));
 		return -1;
 	}
-	dev_link.link_speed = ecmd.edata.speed;
-	sc = ecmd.edata.link_mode_masks[0] |
-		((uint64_t)ecmd.edata.link_mode_masks[1] << 32);
+	dev_link.link_speed = ecmd->speed;
+	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)
 		priv->link_speed_capa |= ETH_LINK_SPEED_AUTONEG;
@@ -874,7 +874,7 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 		  ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT |
 		  ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT))
 		priv->link_speed_capa |= ETH_LINK_SPEED_100G;
-	dev_link.link_duplex = ((ecmd.edata.duplex == DUPLEX_HALF) ?
+	dev_link.link_duplex = ((ecmd->duplex == DUPLEX_HALF) ?
 				ETH_LINK_HALF_DUPLEX : ETH_LINK_FULL_DUPLEX);
 	dev_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
 				  ETH_LINK_SPEED_FIXED);
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/2] net/mlx5: improve stack usage during link update
  2017-08-29 15:35 [PATCH 1/2] net/mlx5: fix clang compilation Nelio Laranjeiro
                   ` (2 preceding siblings ...)
  2017-08-30 14:47 ` [PATCH v2 " Nelio Laranjeiro
@ 2017-08-30 14:47 ` Nelio Laranjeiro
  3 siblings, 0 replies; 6+ messages in thread
From: Nelio Laranjeiro @ 2017-08-30 14:47 UTC (permalink / raw)
  To: dev, Ferruh Yigit; +Cc: stable

Allocate no more memory than necessary for the second call to
ETHTOOL_GLINKSETTINGS.

Cc: stable@dpdk.org

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

--

Changes in v2:

Fix the memory space, link_mode_mask_nwords has the size for the three
expected arrays.
---
 drivers/net/mlx5/mlx5_ethdev.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 0d2dae4..53a23ab 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -113,7 +113,6 @@ struct ethtool_link_settings {
 #define ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT 38
 #define ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT 39
 #endif
-#define ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32 (SCHAR_MAX)
 
 /**
  * Return private structure associated with an Ethernet device.
@@ -805,11 +804,7 @@ static int
 mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 {
 	struct priv *priv = mlx5_get_priv(dev);
-	alignas(struct ethtool_link_settings)
-	uint8_t data[offsetof(struct ethtool_link_settings, link_mode_masks) +
-		     sizeof(uint32_t) *
-		     ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32 * 3];
-	struct ethtool_link_settings *ecmd = (void *)data;
+	struct ethtool_link_settings gcmd = { .cmd = ETHTOOL_GLINKSETTINGS };
 	struct ifreq ifr;
 	struct rte_eth_link dev_link;
 	uint64_t sc;
@@ -822,15 +817,21 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, int wait_to_complete)
 	memset(&dev_link, 0, sizeof(dev_link));
 	dev_link.link_status = ((ifr.ifr_flags & IFF_UP) &&
 				(ifr.ifr_flags & IFF_RUNNING));
-	memset(ecmd, 0, sizeof(*ecmd));
-	ecmd->cmd = ETHTOOL_GLINKSETTINGS;
-	ifr.ifr_data = (void *)ecmd;
+	ifr.ifr_data = (void *)&gcmd;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		DEBUG("ioctl(SIOCETHTOOL, ETHTOOL_GLINKSETTINGS) failed: %s",
 		      strerror(errno));
 		return -1;
 	}
-	ecmd->link_mode_masks_nwords = -ecmd->link_mode_masks_nwords;
+	gcmd.link_mode_masks_nwords = -gcmd.link_mode_masks_nwords;
+
+	alignas(struct ethtool_link_settings)
+	uint8_t data[offsetof(struct ethtool_link_settings, link_mode_masks) +
+		     sizeof(uint32_t) * gcmd.link_mode_masks_nwords * 3];
+	struct ethtool_link_settings *ecmd = (void *)data;
+
+	*ecmd = gcmd;
+	ifr.ifr_data = (void *)ecmd;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		DEBUG("ioctl(SIOCETHTOOL, ETHTOOL_GLINKSETTINGS) failed: %s",
 		      strerror(errno));
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/2] net/mlx5: fix clang compilation
  2017-08-30 14:47 ` [PATCH v2 " Nelio Laranjeiro
@ 2017-08-31 15:33   ` Ferruh Yigit
  0 siblings, 0 replies; 6+ messages in thread
From: Ferruh Yigit @ 2017-08-31 15:33 UTC (permalink / raw)
  To: Nelio Laranjeiro, dev; +Cc: gowrishankar.m, stable

On 8/30/2017 3:47 PM, Nelio Laranjeiro wrote:
> On redhat 7.2 clang reports the following error:
>    CC mlx5_rxmode.o
>  /drivers/net/mlx5/mlx5_ethdev.c:820:32: error: field 'edata' with variable
>   sized type 'struct ethtool_link_settings' not at the end of a struct or
>   class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]
>       struct ethtool_link_settings edata;
> 
> Use alternative approach to reserve buffer space on the stack.
> 
> Fixes: ef09a7fc7620 ("net/mlx5: fix inconsistent link status query")
> Cc: gowrishankar.m@linux.vnet.ibm.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

Series applied to dpdk-next-net/master, thanks.

(replaced the previous version of the set on next-net)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-08-31 15:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-29 15:35 [PATCH 1/2] net/mlx5: fix clang compilation Nelio Laranjeiro
2017-08-29 15:35 ` [PATCH 2/2] net/mlx5: improve stack usage during link update Nelio Laranjeiro
2017-08-30 13:56 ` [dpdk-stable] [PATCH 1/2] net/mlx5: fix clang compilation Ferruh Yigit
2017-08-30 14:47 ` [PATCH v2 " Nelio Laranjeiro
2017-08-31 15:33   ` Ferruh Yigit
2017-08-30 14:47 ` [PATCH v2 2/2] net/mlx5: improve stack usage during link update Nelio Laranjeiro

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.