patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3
@ 2019-06-24 15:24 Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ark: " Kevin Traynor
                   ` (59 more replies)
  0 siblings, 60 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/be825082b6a16fdfd0f9de71f08ae2f4e9ddac68

Thanks.

Kevin Traynor

---
From be825082b6a16fdfd0f9de71f08ae2f4e9ddac68 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:50 -0700
Subject: [PATCH] net/atlantic: remove unnecessary cast

[ upstream commit 78e4a0fada7fdeddcd748f77177cc9777f374a6c ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/atlantic/atl_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c
index 2d05bb4c7..06d4f2eae 100644
--- a/drivers/net/atlantic/atl_ethdev.c
+++ b/drivers/net/atlantic/atl_ethdev.c
@@ -323,6 +323,5 @@ static int
 eth_atl_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct atl_adapter *adapter =
-		(struct atl_adapter *)eth_dev->data->dev_private;
+	struct atl_adapter *adapter = eth_dev->data->dev_private;
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.174795180 +0100
+++ 0001-net-atlantic-remove-unnecessary-cast.patch	2019-06-24 16:18:54.925433725 +0100
@@ -1 +1 @@
-From 78e4a0fada7fdeddcd748f77177cc9777f374a6c Mon Sep 17 00:00:00 2001
+From be825082b6a16fdfd0f9de71f08ae2f4e9ddac68 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 78e4a0fada7fdeddcd748f77177cc9777f374a6c ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -14,2 +14,2 @@
- drivers/net/atlantic/atl_ethdev.c | 9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
+ drivers/net/atlantic/atl_ethdev.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
@@ -18 +18 @@
-index d110e351e..fdc0a7f2d 100644
+index 2d05bb4c7..06d4f2eae 100644
@@ -21 +21 @@
-@@ -372,6 +372,5 @@ static int
+@@ -323,6 +323,5 @@ static int
@@ -29,16 +28,0 @@
-@@ -1016,6 +1015,5 @@ atl_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *stats,
- 		   unsigned int n)
- {
--	struct atl_adapter *adapter =
--	(struct atl_adapter *)dev->data->dev_private;
-+	struct atl_adapter *adapter = dev->data->dev_private;
- 	struct aq_hw_s *hw = &adapter->hw;
- 	struct get_stats req = { 0 };
-@@ -1353,6 +1351,5 @@ atl_dev_interrupt_action(struct rte_eth_dev *dev,
- 	struct atl_interrupt *intr =
- 		ATL_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
--	struct atl_adapter *adapter =
--		(struct atl_adapter *)dev->data->dev_private;
-+	struct atl_adapter *adapter = dev->data->dev_private;
- 	struct aq_hw_s *hw = &adapter->hw;
- 

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

* [dpdk-stable] patch 'net/ark: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/axgbe: " Kevin Traynor
                   ` (58 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/3fe2b21886eaa8f70b6429eee01575be498161ce

Thanks.

Kevin Traynor

---
From 3fe2b21886eaa8f70b6429eee01575be498161ce Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:51 -0700
Subject: [PATCH] net/ark: remove unnecessary cast

[ upstream commit 0bf8b0f16a0ed28175f05cd3aed999ddaed00904 ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/ark/ark_ethdev.c    | 51 +++++++++++----------------------
 drivers/net/ark/ark_ethdev_rx.c |  4 +--
 drivers/net/ark/ark_ethdev_tx.c |  2 +-
 3 files changed, 20 insertions(+), 37 deletions(-)

diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c
index 4f52e2bd1..af37f75ee 100644
--- a/drivers/net/ark/ark_ethdev.c
+++ b/drivers/net/ark/ark_ethdev.c
@@ -242,6 +242,5 @@ static int
 eth_ark_dev_init(struct rte_eth_dev *dev)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 	struct rte_pci_device *pci_dev;
 	int ret;
@@ -418,6 +417,5 @@ static int
 ark_config_device(struct rte_eth_dev *dev)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 	uint16_t num_q, i;
 	struct ark_mpu_t *mpu;
@@ -494,6 +492,5 @@ static int
 eth_ark_dev_uninit(struct rte_eth_dev *dev)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
@@ -517,6 +514,5 @@ eth_ark_dev_configure(struct rte_eth_dev *dev)
 {
 	PMD_FUNC_LOG(DEBUG, "\n");
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	eth_ark_dev_set_link_up(dev);
@@ -544,6 +540,5 @@ static int
 eth_ark_dev_start(struct rte_eth_dev *dev)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 	int i;
 
@@ -597,6 +592,5 @@ eth_ark_dev_stop(struct rte_eth_dev *dev)
 	uint16_t i;
 	int status;
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 	struct ark_mpu_t *mpu;
 
@@ -688,6 +682,5 @@ static void
 eth_ark_dev_close(struct rte_eth_dev *dev)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 	uint16_t i;
 
@@ -719,6 +712,5 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev,
 		     struct rte_eth_dev_info *dev_info)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 	struct ark_mpu_t *tx_mpu = RTE_PTR_ADD(ark->bar0, ARK_MPU_TX_BASE);
 	struct ark_mpu_t *rx_mpu = RTE_PTR_ADD(ark->bar0, ARK_MPU_RX_BASE);
@@ -755,6 +747,5 @@ eth_ark_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 	PMD_DEBUG_LOG(DEBUG, "link status = %d\n",
 			dev->data->dev_link.link_status);
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	if (ark->user_ext.link_update) {
@@ -770,6 +761,5 @@ eth_ark_dev_set_link_up(struct rte_eth_dev *dev)
 {
 	dev->data->dev_link.link_status = 1;
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	if (ark->user_ext.dev_set_link_up)
@@ -783,6 +773,5 @@ eth_ark_dev_set_link_down(struct rte_eth_dev *dev)
 {
 	dev->data->dev_link.link_status = 0;
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	if (ark->user_ext.dev_set_link_down)
@@ -796,6 +785,5 @@ eth_ark_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 {
 	uint16_t i;
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	stats->ipackets = 0;
@@ -820,6 +808,5 @@ eth_ark_dev_stats_reset(struct rte_eth_dev *dev)
 {
 	uint16_t i;
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	for (i = 0; i < dev->data->nb_tx_queues; i++)
@@ -838,6 +825,5 @@ eth_ark_macaddr_add(struct rte_eth_dev *dev,
 		    uint32_t pool)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	if (ark->user_ext.mac_addr_add) {
@@ -855,6 +841,5 @@ static void
 eth_ark_macaddr_remove(struct rte_eth_dev *dev, uint32_t index)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	if (ark->user_ext.mac_addr_remove)
@@ -867,6 +852,5 @@ eth_ark_set_default_mac_addr(struct rte_eth_dev *dev,
 			     struct ether_addr *mac_addr)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	if (ark->user_ext.mac_addr_set) {
@@ -881,6 +865,5 @@ static int
 eth_ark_set_mtu(struct rte_eth_dev *dev, uint16_t  size)
 {
-	struct ark_adapter *ark =
-		(struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	if (ark->user_ext.set_mtu)
diff --git a/drivers/net/ark/ark_ethdev_rx.c b/drivers/net/ark/ark_ethdev_rx.c
index 300029d6b..7de1a9851 100644
--- a/drivers/net/ark/ark_ethdev_rx.c
+++ b/drivers/net/ark/ark_ethdev_rx.c
@@ -122,5 +122,5 @@ eth_ark_dev_rx_queue_setup(struct rte_eth_dev *dev,
 {
 	static int warning1;		/* = 0 */
-	struct ark_adapter *ark = (struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 
 	struct ark_rx_queue *queue;
@@ -612,5 +612,5 @@ void
 eth_ark_udm_force_close(struct rte_eth_dev *dev)
 {
-	struct ark_adapter *ark = (struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 	struct ark_rx_queue *queue;
 	uint32_t index;
diff --git a/drivers/net/ark/ark_ethdev_tx.c b/drivers/net/ark/ark_ethdev_tx.c
index 94da5f958..196765570 100644
--- a/drivers/net/ark/ark_ethdev_tx.c
+++ b/drivers/net/ark/ark_ethdev_tx.c
@@ -208,5 +208,5 @@ eth_ark_tx_queue_setup(struct rte_eth_dev *dev,
 		       const struct rte_eth_txconf *tx_conf __rte_unused)
 {
-	struct ark_adapter *ark = (struct ark_adapter *)dev->data->dev_private;
+	struct ark_adapter *ark = dev->data->dev_private;
 	struct ark_tx_queue *queue;
 	int status;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.216304001 +0100
+++ 0002-net-ark-remove-unnecessary-cast.patch	2019-06-24 16:18:54.927433678 +0100
@@ -1 +1 @@
-From 0bf8b0f16a0ed28175f05cd3aed999ddaed00904 Mon Sep 17 00:00:00 2001
+From 3fe2b21886eaa8f70b6429eee01575be498161ce Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0bf8b0f16a0ed28175f05cd3aed999ddaed00904 ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -20 +20 @@
-index 7692aa2d9..7fd784cd0 100644
+index 4f52e2bd1..af37f75ee 100644
@@ -31 +31 @@
-@@ -419,6 +418,5 @@ static int
+@@ -418,6 +417,5 @@ static int
@@ -39 +39 @@
-@@ -495,6 +493,5 @@ static int
+@@ -494,6 +492,5 @@ static int
@@ -47 +47 @@
-@@ -518,6 +515,5 @@ eth_ark_dev_configure(struct rte_eth_dev *dev)
+@@ -517,6 +514,5 @@ eth_ark_dev_configure(struct rte_eth_dev *dev)
@@ -55 +55 @@
-@@ -545,6 +541,5 @@ static int
+@@ -544,6 +540,5 @@ static int
@@ -63 +63 @@
-@@ -598,6 +593,5 @@ eth_ark_dev_stop(struct rte_eth_dev *dev)
+@@ -597,6 +592,5 @@ eth_ark_dev_stop(struct rte_eth_dev *dev)
@@ -71 +71 @@
-@@ -689,6 +683,5 @@ static void
+@@ -688,6 +682,5 @@ static void
@@ -79 +79 @@
-@@ -720,6 +713,5 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev,
+@@ -719,6 +712,5 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev,
@@ -87 +87 @@
-@@ -756,6 +748,5 @@ eth_ark_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -755,6 +747,5 @@ eth_ark_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)
@@ -95 +95 @@
-@@ -771,6 +762,5 @@ eth_ark_dev_set_link_up(struct rte_eth_dev *dev)
+@@ -770,6 +761,5 @@ eth_ark_dev_set_link_up(struct rte_eth_dev *dev)
@@ -103 +103 @@
-@@ -784,6 +774,5 @@ eth_ark_dev_set_link_down(struct rte_eth_dev *dev)
+@@ -783,6 +773,5 @@ eth_ark_dev_set_link_down(struct rte_eth_dev *dev)
@@ -111 +111 @@
-@@ -797,6 +786,5 @@ eth_ark_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
+@@ -796,6 +785,5 @@ eth_ark_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
@@ -119 +119 @@
-@@ -821,6 +809,5 @@ eth_ark_dev_stats_reset(struct rte_eth_dev *dev)
+@@ -820,6 +808,5 @@ eth_ark_dev_stats_reset(struct rte_eth_dev *dev)
@@ -127 +127 @@
-@@ -839,6 +826,5 @@ eth_ark_macaddr_add(struct rte_eth_dev *dev,
+@@ -838,6 +825,5 @@ eth_ark_macaddr_add(struct rte_eth_dev *dev,
@@ -135 +135 @@
-@@ -856,6 +842,5 @@ static void
+@@ -855,6 +841,5 @@ static void
@@ -143,2 +143,2 @@
-@@ -868,6 +853,5 @@ eth_ark_set_default_mac_addr(struct rte_eth_dev *dev,
- 			     struct rte_ether_addr *mac_addr)
+@@ -867,6 +852,5 @@ eth_ark_set_default_mac_addr(struct rte_eth_dev *dev,
+ 			     struct ether_addr *mac_addr)
@@ -151 +151 @@
-@@ -882,6 +866,5 @@ static int
+@@ -881,6 +865,5 @@ static int

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

* [dpdk-stable] patch 'net/axgbe: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ark: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: " Kevin Traynor
                   ` (57 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/be890a6b9f0fe2aa6c11ab78897b819fcca8047e

Thanks.

Kevin Traynor

---
From be890a6b9f0fe2aa6c11ab78897b819fcca8047e Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:52 -0700
Subject: [PATCH] net/axgbe: remove unnecessary cast

[ upstream commit 0bc212a8ae76324c038cd3110f3a92488264f45d ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/axgbe/axgbe_ethdev.c | 24 +++++++++++++++---------
 drivers/net/axgbe/axgbe_rxtx.c   |  2 +-
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c
index e89c0ec2c..2f34ad80c 100644
--- a/drivers/net/axgbe/axgbe_ethdev.c
+++ b/drivers/net/axgbe/axgbe_ethdev.c
@@ -158,5 +158,5 @@ static int
 axgbe_dev_rx_mq_config(struct rte_eth_dev *dev)
 {
-	struct axgbe_port *pdata = (struct axgbe_port *)dev->data->dev_private;
+	struct axgbe_port *pdata = dev->data->dev_private;
 
 	if (dev->data->dev_conf.rxmode.mq_mode == ETH_MQ_RX_RSS)
@@ -172,8 +172,9 @@ static int
 axgbe_dev_start(struct rte_eth_dev *dev)
 {
-	PMD_INIT_FUNC_TRACE();
-	struct axgbe_port *pdata = (struct axgbe_port *)dev->data->dev_private;
+	struct axgbe_port *pdata = dev->data->dev_private;
 	int ret;
 
+	PMD_INIT_FUNC_TRACE();
+
 	/* Multiqueue RSS */
 	ret = axgbe_dev_rx_mq_config(dev);
@@ -210,7 +211,8 @@ static void
 axgbe_dev_stop(struct rte_eth_dev *dev)
 {
-	PMD_INIT_FUNC_TRACE();
 	struct axgbe_port *pdata = dev->data->dev_private;
 
+	PMD_INIT_FUNC_TRACE();
+
 	rte_intr_disable(&pdata->pci_dev->intr_handle);
 
@@ -238,7 +240,8 @@ static void
 axgbe_dev_promiscuous_enable(struct rte_eth_dev *dev)
 {
-	PMD_INIT_FUNC_TRACE();
 	struct axgbe_port *pdata = dev->data->dev_private;
 
+	PMD_INIT_FUNC_TRACE();
+
 	AXGMAC_IOWRITE_BITS(pdata, MAC_PFR, PR, 1);
 }
@@ -247,7 +250,8 @@ static void
 axgbe_dev_promiscuous_disable(struct rte_eth_dev *dev)
 {
-	PMD_INIT_FUNC_TRACE();
 	struct axgbe_port *pdata = dev->data->dev_private;
 
+	PMD_INIT_FUNC_TRACE();
+
 	AXGMAC_IOWRITE_BITS(pdata, MAC_PFR, PR, 0);
 }
@@ -256,7 +260,8 @@ static void
 axgbe_dev_allmulticast_enable(struct rte_eth_dev *dev)
 {
-	PMD_INIT_FUNC_TRACE();
 	struct axgbe_port *pdata = dev->data->dev_private;
 
+	PMD_INIT_FUNC_TRACE();
+
 	if (AXGMAC_IOREAD_BITS(pdata, MAC_PFR, PM))
 		return;
@@ -267,7 +272,8 @@ static void
 axgbe_dev_allmulticast_disable(struct rte_eth_dev *dev)
 {
-	PMD_INIT_FUNC_TRACE();
 	struct axgbe_port *pdata = dev->data->dev_private;
 
+	PMD_INIT_FUNC_TRACE();
+
 	if (!AXGMAC_IOREAD_BITS(pdata, MAC_PFR, PM))
 		return;
@@ -579,5 +585,5 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)
 		return 0;
 
-	pdata = (struct axgbe_port *)eth_dev->data->dev_private;
+	pdata = eth_dev->data->dev_private;
 	/* initial state */
 	axgbe_set_bit(AXGBE_DOWN, &pdata->dev_state);
diff --git a/drivers/net/axgbe/axgbe_rxtx.c b/drivers/net/axgbe/axgbe_rxtx.c
index b5a29a95f..d80f378c7 100644
--- a/drivers/net/axgbe/axgbe_rxtx.c
+++ b/drivers/net/axgbe/axgbe_rxtx.c
@@ -343,5 +343,5 @@ int axgbe_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 
 	tx_desc = nb_desc;
-	pdata = (struct axgbe_port *)dev->data->dev_private;
+	pdata = dev->data->dev_private;
 
 	/*
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.261907672 +0100
+++ 0003-net-axgbe-remove-unnecessary-cast.patch	2019-06-24 16:18:54.929433631 +0100
@@ -1 +1 @@
-From 0bc212a8ae76324c038cd3110f3a92488264f45d Mon Sep 17 00:00:00 2001
+From be890a6b9f0fe2aa6c11ab78897b819fcca8047e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0bc212a8ae76324c038cd3110f3a92488264f45d ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -19 +19 @@
-index 221979c5e..6b3bc3eea 100644
+index e89c0ec2c..2f34ad80c 100644
@@ -99 +99 @@
-index e76601d14..cfc55b359 100644
+index b5a29a95f..d80f378c7 100644

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

* [dpdk-stable] patch 'net/bnxt: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ark: " Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/axgbe: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bonding: " Kevin Traynor
                   ` (56 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Lance Richardson, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/7f972e6ae72de89ca9cfd8170f0712dac9444f6b

Thanks.

Kevin Traynor

---
From 7f972e6ae72de89ca9cfd8170f0712dac9444f6b Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:53 -0700
Subject: [PATCH] net/bnxt: remove unnecessary cast

[ upstream commit 78466c95f8ad7ae7e01766c7b1040b1f464478fb ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Lance Richardson <lance.richardson@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c  | 86 ++++++++++++++++-----------------
 drivers/net/bnxt/bnxt_flow.c    | 10 ++--
 drivers/net/bnxt/bnxt_irq.c     |  2 +-
 drivers/net/bnxt/bnxt_rxq.c     |  6 +--
 drivers/net/bnxt/bnxt_stats.c   |  6 +--
 drivers/net/bnxt/bnxt_txq.c     |  2 +-
 drivers/net/bnxt/bnxt_txr.c     |  4 +-
 drivers/net/bnxt/rte_pmd_bnxt.c | 32 ++++++------
 8 files changed, 74 insertions(+), 74 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 00d758650..22ee725ad 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -442,5 +442,5 @@ static void bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev,
 				  struct rte_eth_dev_info *dev_info)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	uint16_t max_vnics, i, j, vpool, vrxq;
 	unsigned int max_rx_rings;
@@ -538,5 +538,5 @@ found:
 static int bnxt_dev_configure_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	uint64_t rx_offloads = eth_dev->data->dev_conf.rxmode.offloads;
 	int rc;
@@ -621,5 +621,5 @@ static void bnxt_print_link_info(struct rte_eth_dev *eth_dev)
 static int bnxt_dev_start_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	uint64_t rx_offloads = eth_dev->data->dev_conf.rxmode.offloads;
 	int vlan_mask = 0;
@@ -659,5 +659,5 @@ error:
 static int bnxt_dev_set_link_up_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	int rc = 0;
 
@@ -673,5 +673,5 @@ static int bnxt_dev_set_link_up_op(struct rte_eth_dev *eth_dev)
 static int bnxt_dev_set_link_down_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 
 	eth_dev->data->dev_link.link_status = 0;
@@ -685,5 +685,5 @@ static int bnxt_dev_set_link_down_op(struct rte_eth_dev *eth_dev)
 static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 
 	bp->flags &= ~BNXT_FLAG_INIT_DONE;
@@ -702,5 +702,5 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev)
 static void bnxt_dev_close_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 
 	if (bp->dev_stopped == 0)
@@ -722,5 +722,5 @@ static void bnxt_mac_addr_remove_op(struct rte_eth_dev *eth_dev,
 				    uint32_t index)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	uint64_t pool_mask = eth_dev->data->mac_pool_sel[index];
 	struct bnxt_vnic_info *vnic;
@@ -758,5 +758,5 @@ static int bnxt_mac_addr_add_op(struct rte_eth_dev *eth_dev,
 				uint32_t index, uint32_t pool)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct bnxt_vnic_info *vnic = &bp->vnic_info[pool];
 	struct bnxt_filter_info *filter;
@@ -793,5 +793,5 @@ int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int wait_to_complete)
 {
 	int rc = 0;
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct rte_eth_link new;
 	unsigned int cnt = BNXT_LINK_WAIT_CNT;
@@ -833,5 +833,5 @@ out:
 static void bnxt_promiscuous_enable_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct bnxt_vnic_info *vnic;
 
@@ -847,5 +847,5 @@ static void bnxt_promiscuous_enable_op(struct rte_eth_dev *eth_dev)
 static void bnxt_promiscuous_disable_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct bnxt_vnic_info *vnic;
 
@@ -861,5 +861,5 @@ static void bnxt_promiscuous_disable_op(struct rte_eth_dev *eth_dev)
 static void bnxt_allmulticast_enable_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct bnxt_vnic_info *vnic;
 
@@ -875,5 +875,5 @@ static void bnxt_allmulticast_enable_op(struct rte_eth_dev *eth_dev)
 static void bnxt_allmulticast_disable_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct bnxt_vnic_info *vnic;
 
@@ -913,5 +913,5 @@ static int bnxt_reta_update_op(struct rte_eth_dev *eth_dev,
 			    uint16_t reta_size)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct rte_eth_conf *dev_conf = &bp->eth_dev->data->dev_conf;
 	struct bnxt_vnic_info *vnic = &bp->vnic_info[0];
@@ -960,5 +960,5 @@ static int bnxt_reta_query_op(struct rte_eth_dev *eth_dev,
 			      uint16_t reta_size)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct bnxt_vnic_info *vnic = &bp->vnic_info[0];
 	uint16_t tbl_size = HW_HASH_INDEX_SIZE;
@@ -1001,5 +1001,5 @@ static int bnxt_rss_hash_update_op(struct rte_eth_dev *eth_dev,
 				   struct rte_eth_rss_conf *rss_conf)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct rte_eth_conf *dev_conf = &bp->eth_dev->data->dev_conf;
 	struct bnxt_vnic_info *vnic;
@@ -1057,5 +1057,5 @@ static int bnxt_rss_hash_conf_get_op(struct rte_eth_dev *eth_dev,
 				     struct rte_eth_rss_conf *rss_conf)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct bnxt_vnic_info *vnic = &bp->vnic_info[0];
 	int len;
@@ -1115,5 +1115,5 @@ static int bnxt_flow_ctrl_get_op(struct rte_eth_dev *dev,
 			       struct rte_eth_fc_conf *fc_conf)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct rte_eth_link link_info;
 	int rc;
@@ -1147,5 +1147,5 @@ static int bnxt_flow_ctrl_set_op(struct rte_eth_dev *dev,
 			       struct rte_eth_fc_conf *fc_conf)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 
 	if (!BNXT_SINGLE_PF(bp) || BNXT_VF(bp)) {
@@ -1203,5 +1203,5 @@ bnxt_udp_tunnel_port_add_op(struct rte_eth_dev *eth_dev,
 			 struct rte_eth_udp_tunnel *udp_tunnel)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	uint16_t tunnel_type = 0;
 	int rc = 0;
@@ -1251,5 +1251,5 @@ bnxt_udp_tunnel_port_del_op(struct rte_eth_dev *eth_dev,
 			 struct rte_eth_udp_tunnel *udp_tunnel)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	uint16_t tunnel_type = 0;
 	uint16_t port = 0;
@@ -1451,5 +1451,5 @@ static int bnxt_vlan_filter_set_op(struct rte_eth_dev *eth_dev,
 		uint16_t vlan_id, int on)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 
 	/* These operations apply to ALL existing MAC/VLAN filters */
@@ -1463,5 +1463,5 @@ static int
 bnxt_vlan_offload_set_op(struct rte_eth_dev *dev, int mask)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	uint64_t rx_offloads = dev->data->dev_conf.rxmode.offloads;
 	unsigned int i;
@@ -1500,5 +1500,5 @@ static int
 bnxt_set_default_mac_addr_op(struct rte_eth_dev *dev, struct ether_addr *addr)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	/* Default Filter is tied to VNIC 0 */
 	struct bnxt_vnic_info *vnic = &bp->vnic_info[0];
@@ -1539,5 +1539,5 @@ bnxt_dev_set_mc_addr_list_op(struct rte_eth_dev *eth_dev,
 			  uint32_t nb_mc_addr)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	char *mc_addr_list = (char *)mc_addr_set;
 	struct bnxt_vnic_info *vnic;
@@ -1567,5 +1567,5 @@ static int
 bnxt_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	uint8_t fw_major = (bp->fw_ver >> 24) & 0xff;
 	uint8_t fw_minor = (bp->fw_ver >> 16) & 0xff;
@@ -1676,5 +1676,5 @@ static int
 bnxt_vlan_pvid_set_op(struct rte_eth_dev *dev, uint16_t pvid, int on)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	uint16_t vlan = bp->vlan;
 	int rc;
@@ -1696,5 +1696,5 @@ static int
 bnxt_dev_led_on_op(struct rte_eth_dev *dev)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 
 	return bnxt_hwrm_port_led_cfg(bp, true);
@@ -1704,5 +1704,5 @@ static int
 bnxt_dev_led_off_op(struct rte_eth_dev *dev)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 
 	return bnxt_hwrm_port_led_cfg(bp, false);
@@ -1896,5 +1896,5 @@ bnxt_ethertype_filter(struct rte_eth_dev *dev,
 			void *arg)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct rte_eth_ethertype_filter *efilter =
 			(struct rte_eth_ethertype_filter *)arg;
@@ -2200,5 +2200,5 @@ bnxt_ntuple_filter(struct rte_eth_dev *dev,
 			void *arg)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	int ret;
 
@@ -2516,5 +2516,5 @@ bnxt_fdir_filter(struct rte_eth_dev *dev,
 		 void *arg)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct rte_eth_fdir_filter *fdir  = (struct rte_eth_fdir_filter *)arg;
 	struct bnxt_filter_info *filter, *match;
@@ -2802,5 +2802,5 @@ bnxt_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
 {
 	uint64_t ns;
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 
@@ -2819,5 +2819,5 @@ bnxt_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
 {
 	uint64_t ns, systime_cycles;
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 
@@ -2834,5 +2834,5 @@ static int
 bnxt_timesync_enable(struct rte_eth_dev *dev)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 	uint32_t shift = 0;
@@ -2870,5 +2870,5 @@ static int
 bnxt_timesync_disable(struct rte_eth_dev *dev)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 
@@ -2892,5 +2892,5 @@ bnxt_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
 				 uint32_t flags __rte_unused)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 	uint64_t rx_tstamp_cycles = 0;
@@ -2910,5 +2910,5 @@ bnxt_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
 				 struct timespec *timestamp)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 	uint64_t tx_tstamp_cycles = 0;
@@ -2928,5 +2928,5 @@ static int
 bnxt_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 
@@ -2942,5 +2942,5 @@ static int
 bnxt_get_eeprom_length_op(struct rte_eth_dev *dev)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	int rc;
 	uint32_t dir_entries;
@@ -2962,5 +2962,5 @@ bnxt_get_eeprom_op(struct rte_eth_dev *dev,
 		struct rte_dev_eeprom_info *in_eeprom)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	uint32_t index;
 	uint32_t offset;
@@ -3033,5 +3033,5 @@ bnxt_set_eeprom_op(struct rte_eth_dev *dev,
 		struct rte_dev_eeprom_info *in_eeprom)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	uint8_t index, dir_op;
 	uint16_t type, ext, ordinal, attr;
diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c
index 1afe67407..6a5995389 100644
--- a/drivers/net/bnxt/bnxt_flow.c
+++ b/drivers/net/bnxt/bnxt_flow.c
@@ -716,5 +716,5 @@ bnxt_validate_and_parse_flow(struct rte_eth_dev *dev,
 	const struct rte_flow_action *act =
 		bnxt_flow_non_void_action(actions);
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	const struct rte_flow_action_queue *act_q;
 	const struct rte_flow_action_vf *act_vf;
@@ -901,5 +901,5 @@ bnxt_flow_validate(struct rte_eth_dev *dev,
 		   struct rte_flow_error *error)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_filter_info *filter;
 	int ret = 0;
@@ -999,5 +999,5 @@ bnxt_flow_create(struct rte_eth_dev *dev,
 		 struct rte_flow_error *error)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_filter_info *filter;
 	struct bnxt_vnic_info *vnic = NULL;
@@ -1100,5 +1100,5 @@ bnxt_flow_destroy(struct rte_eth_dev *dev,
 		  struct rte_flow_error *error)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_filter_info *filter = flow->filter;
 	struct bnxt_vnic_info *vnic = flow->vnic;
@@ -1129,5 +1129,5 @@ static int
 bnxt_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_vnic_info *vnic;
 	struct rte_flow *flow;
diff --git a/drivers/net/bnxt/bnxt_irq.c b/drivers/net/bnxt/bnxt_irq.c
index 7ef7023eb..e03766b41 100644
--- a/drivers/net/bnxt/bnxt_irq.c
+++ b/drivers/net/bnxt/bnxt_irq.c
@@ -21,5 +21,5 @@ static void bnxt_int_handler(void *param)
 {
 	struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param;
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct bnxt_cp_ring_info *cpr = bp->def_cp_ring;
 	struct cmpl_base *cmp;
diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index 17e2909a7..efd5f947e 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -289,5 +289,5 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev,
 			       struct rte_mempool *mp)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	uint64_t rx_offloads = eth_dev->data->dev_conf.rxmode.offloads;
 	struct bnxt_rx_queue *rxq;
@@ -400,5 +400,5 @@ bnxt_rx_queue_intr_disable_op(struct rte_eth_dev *eth_dev, uint16_t queue_id)
 int bnxt_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct rte_eth_conf *dev_conf = &bp->eth_dev->data->dev_conf;
 	struct bnxt_rx_queue *rxq = bp->rx_queues[rx_queue_id];
@@ -440,5 +440,5 @@ int bnxt_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 int bnxt_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct rte_eth_conf *dev_conf = &bp->eth_dev->data->dev_conf;
 	struct bnxt_vnic_info *vnic = NULL;
diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c
index c16bf99da..77f855d48 100644
--- a/drivers/net/bnxt/bnxt_stats.c
+++ b/drivers/net/bnxt/bnxt_stats.c
@@ -387,5 +387,5 @@ int bnxt_stats_get_op(struct rte_eth_dev *eth_dev,
 void bnxt_stats_reset_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	unsigned int i;
 
@@ -406,5 +406,5 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
 			   struct rte_eth_xstat *xstats, unsigned int n)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 
 	unsigned int count, i;
@@ -537,5 +537,5 @@ int bnxt_dev_xstats_get_names_op(__rte_unused struct rte_eth_dev *eth_dev,
 void bnxt_dev_xstats_reset_op(struct rte_eth_dev *eth_dev)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 
 	if (bp->flags & BNXT_FLAG_PORT_STATS && BNXT_SINGLE_PF(bp))
diff --git a/drivers/net/bnxt/bnxt_txq.c b/drivers/net/bnxt/bnxt_txq.c
index b9b975e4c..d6b93b44a 100644
--- a/drivers/net/bnxt/bnxt_txq.c
+++ b/drivers/net/bnxt/bnxt_txq.c
@@ -80,5 +80,5 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev,
 			       const struct rte_eth_txconf *tx_conf)
 {
-	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+	struct bnxt *bp = eth_dev->data->dev_private;
 	struct bnxt_tx_queue *txq;
 	int rc = 0;
diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c
index 82ab46501..95272c999 100644
--- a/drivers/net/bnxt/bnxt_txr.c
+++ b/drivers/net/bnxt/bnxt_txr.c
@@ -445,5 +445,5 @@ uint16_t bnxt_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 int bnxt_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_tx_queue *txq = bp->tx_queues[tx_queue_id];
 
@@ -457,5 +457,5 @@ int bnxt_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
 int bnxt_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
 {
-	struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+	struct bnxt *bp = dev->data->dev_private;
 	struct bnxt_tx_queue *txq = bp->tx_queues[tx_queue_id];
 
diff --git a/drivers/net/bnxt/rte_pmd_bnxt.c b/drivers/net/bnxt/rte_pmd_bnxt.c
index c298de83c..56a58a2f8 100644
--- a/drivers/net/bnxt/rte_pmd_bnxt.c
+++ b/drivers/net/bnxt/rte_pmd_bnxt.c
@@ -55,5 +55,5 @@ int rte_pmd_bnxt_set_tx_loopback(uint16_t port, uint8_t on)
 		return -ENOTSUP;
 
-	bp = (struct bnxt *)eth_dev->data->dev_private;
+	bp = eth_dev->data->dev_private;
 
 	if (!BNXT_PF(bp)) {
@@ -97,5 +97,5 @@ int rte_pmd_bnxt_set_all_queues_drop_en(uint16_t port, uint8_t on)
 		return -ENOTSUP;
 
-	bp = (struct bnxt *)eth_dev->data->dev_private;
+	bp = eth_dev->data->dev_private;
 
 	if (!BNXT_PF(bp)) {
@@ -147,5 +147,5 @@ int rte_pmd_bnxt_set_vf_mac_addr(uint16_t port, uint16_t vf,
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (vf >= dev_info.max_vfs || mac_addr == NULL)
@@ -181,5 +181,5 @@ int rte_pmd_bnxt_set_vf_rate_limit(uint16_t port, uint16_t vf,
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)eth_dev->data->dev_private;
+	bp = eth_dev->data->dev_private;
 
 	if (!bp->pf.active_vfs)
@@ -232,5 +232,5 @@ int rte_pmd_bnxt_set_vf_mac_anti_spoof(uint16_t port, uint16_t vf, uint8_t on)
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (!BNXT_PF(bp)) {
@@ -284,5 +284,5 @@ int rte_pmd_bnxt_set_vf_vlan_anti_spoof(uint16_t port, uint16_t vf, uint8_t on)
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (!BNXT_PF(bp)) {
@@ -334,5 +334,5 @@ rte_pmd_bnxt_set_vf_vlan_stripq(uint16_t port, uint16_t vf, uint8_t on)
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (vf >= dev_info.max_vfs)
@@ -371,5 +371,5 @@ int rte_pmd_bnxt_set_vf_rxmode(uint16_t port, uint16_t vf,
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (!bp->pf.vf_info)
@@ -463,5 +463,5 @@ int rte_pmd_bnxt_set_vf_vlan_filter(uint16_t port, uint16_t vlan,
 		return -ENOTSUP;
 
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 	if (!bp->pf.vf_info)
 		return -EINVAL;
@@ -552,5 +552,5 @@ int rte_pmd_bnxt_get_vf_stats(uint16_t port,
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (vf_id >= dev_info.max_vfs)
@@ -579,5 +579,5 @@ int rte_pmd_bnxt_reset_vf_stats(uint16_t port,
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (vf_id >= dev_info.max_vfs)
@@ -605,5 +605,5 @@ int rte_pmd_bnxt_get_vf_rx_status(uint16_t port, uint16_t vf_id)
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (vf_id >= dev_info.max_vfs)
@@ -632,5 +632,5 @@ int rte_pmd_bnxt_get_vf_tx_drop_count(uint16_t port, uint16_t vf_id,
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (vf_id >= dev_info.max_vfs)
@@ -664,5 +664,5 @@ int rte_pmd_bnxt_mac_addr_add(uint16_t port, struct ether_addr *addr,
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (vf_id >= dev_info.max_vfs)
@@ -740,5 +740,5 @@ rte_pmd_bnxt_set_vf_vlan_insert(uint16_t port, uint16_t vf,
 
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (vf >= dev_info.max_vfs)
@@ -777,5 +777,5 @@ int rte_pmd_bnxt_set_vf_persist_stats(uint16_t port, uint16_t vf, uint8_t on)
 	dev = &rte_eth_devices[port];
 	rte_eth_dev_info_get(port, &dev_info);
-	bp = (struct bnxt *)dev->data->dev_private;
+	bp = dev->data->dev_private;
 
 	if (!BNXT_PF(bp)) {
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.307486895 +0100
+++ 0004-net-bnxt-remove-unnecessary-cast.patch	2019-06-24 16:18:54.937433442 +0100
@@ -1 +1 @@
-From 78466c95f8ad7ae7e01766c7b1040b1f464478fb Mon Sep 17 00:00:00 2001
+From 7f972e6ae72de89ca9cfd8170f0712dac9444f6b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 78466c95f8ad7ae7e01766c7b1040b1f464478fb ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -25 +25 @@
-index b5ed0536c..61ae799e0 100644
+index 00d758650..22ee725ad 100644
@@ -42 +42 @@
-@@ -702,5 +702,5 @@ bnxt_transmit_function(__rte_unused struct rte_eth_dev *eth_dev)
+@@ -621,5 +621,5 @@ static void bnxt_print_link_info(struct rte_eth_dev *eth_dev)
@@ -49 +49 @@
-@@ -744,5 +744,5 @@ error:
+@@ -659,5 +659,5 @@ error:
@@ -56 +56 @@
-@@ -758,5 +758,5 @@ static int bnxt_dev_set_link_up_op(struct rte_eth_dev *eth_dev)
+@@ -673,5 +673,5 @@ static int bnxt_dev_set_link_up_op(struct rte_eth_dev *eth_dev)
@@ -63 +63 @@
-@@ -770,5 +770,5 @@ static int bnxt_dev_set_link_down_op(struct rte_eth_dev *eth_dev)
+@@ -685,5 +685,5 @@ static int bnxt_dev_set_link_down_op(struct rte_eth_dev *eth_dev)
@@ -70 +70 @@
-@@ -787,5 +787,5 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev)
+@@ -702,5 +702,5 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev)
@@ -77 +77 @@
-@@ -807,5 +807,5 @@ static void bnxt_mac_addr_remove_op(struct rte_eth_dev *eth_dev,
+@@ -722,5 +722,5 @@ static void bnxt_mac_addr_remove_op(struct rte_eth_dev *eth_dev,
@@ -84 +84 @@
-@@ -843,5 +843,5 @@ static int bnxt_mac_addr_add_op(struct rte_eth_dev *eth_dev,
+@@ -758,5 +758,5 @@ static int bnxt_mac_addr_add_op(struct rte_eth_dev *eth_dev,
@@ -91 +91 @@
-@@ -878,5 +878,5 @@ int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int wait_to_complete)
+@@ -793,5 +793,5 @@ int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int wait_to_complete)
@@ -98 +98 @@
-@@ -918,5 +918,5 @@ out:
+@@ -833,5 +833,5 @@ out:
@@ -105 +105 @@
-@@ -932,5 +932,5 @@ static void bnxt_promiscuous_enable_op(struct rte_eth_dev *eth_dev)
+@@ -847,5 +847,5 @@ static void bnxt_promiscuous_enable_op(struct rte_eth_dev *eth_dev)
@@ -112 +112 @@
-@@ -946,5 +946,5 @@ static void bnxt_promiscuous_disable_op(struct rte_eth_dev *eth_dev)
+@@ -861,5 +861,5 @@ static void bnxt_promiscuous_disable_op(struct rte_eth_dev *eth_dev)
@@ -119 +119 @@
-@@ -960,5 +960,5 @@ static void bnxt_allmulticast_enable_op(struct rte_eth_dev *eth_dev)
+@@ -875,5 +875,5 @@ static void bnxt_allmulticast_enable_op(struct rte_eth_dev *eth_dev)
@@ -126 +126 @@
-@@ -998,5 +998,5 @@ static int bnxt_reta_update_op(struct rte_eth_dev *eth_dev,
+@@ -913,5 +913,5 @@ static int bnxt_reta_update_op(struct rte_eth_dev *eth_dev,
@@ -133 +133 @@
-@@ -1045,5 +1045,5 @@ static int bnxt_reta_query_op(struct rte_eth_dev *eth_dev,
+@@ -960,5 +960,5 @@ static int bnxt_reta_query_op(struct rte_eth_dev *eth_dev,
@@ -140 +140 @@
-@@ -1086,5 +1086,5 @@ static int bnxt_rss_hash_update_op(struct rte_eth_dev *eth_dev,
+@@ -1001,5 +1001,5 @@ static int bnxt_rss_hash_update_op(struct rte_eth_dev *eth_dev,
@@ -147 +147 @@
-@@ -1142,5 +1142,5 @@ static int bnxt_rss_hash_conf_get_op(struct rte_eth_dev *eth_dev,
+@@ -1057,5 +1057,5 @@ static int bnxt_rss_hash_conf_get_op(struct rte_eth_dev *eth_dev,
@@ -154 +154 @@
-@@ -1200,5 +1200,5 @@ static int bnxt_flow_ctrl_get_op(struct rte_eth_dev *dev,
+@@ -1115,5 +1115,5 @@ static int bnxt_flow_ctrl_get_op(struct rte_eth_dev *dev,
@@ -161 +161 @@
-@@ -1232,5 +1232,5 @@ static int bnxt_flow_ctrl_set_op(struct rte_eth_dev *dev,
+@@ -1147,5 +1147,5 @@ static int bnxt_flow_ctrl_set_op(struct rte_eth_dev *dev,
@@ -168 +168 @@
-@@ -1288,5 +1288,5 @@ bnxt_udp_tunnel_port_add_op(struct rte_eth_dev *eth_dev,
+@@ -1203,5 +1203,5 @@ bnxt_udp_tunnel_port_add_op(struct rte_eth_dev *eth_dev,
@@ -175 +175 @@
-@@ -1336,5 +1336,5 @@ bnxt_udp_tunnel_port_del_op(struct rte_eth_dev *eth_dev,
+@@ -1251,5 +1251,5 @@ bnxt_udp_tunnel_port_del_op(struct rte_eth_dev *eth_dev,
@@ -182 +182 @@
-@@ -1536,5 +1536,5 @@ static int bnxt_vlan_filter_set_op(struct rte_eth_dev *eth_dev,
+@@ -1451,5 +1451,5 @@ static int bnxt_vlan_filter_set_op(struct rte_eth_dev *eth_dev,
@@ -189 +189 @@
-@@ -1548,5 +1548,5 @@ static int
+@@ -1463,5 +1463,5 @@ static int
@@ -196,2 +196,2 @@
-@@ -1586,5 +1586,5 @@ bnxt_set_default_mac_addr_op(struct rte_eth_dev *dev,
- 			struct rte_ether_addr *addr)
+@@ -1500,5 +1500,5 @@ static int
+ bnxt_set_default_mac_addr_op(struct rte_eth_dev *dev, struct ether_addr *addr)
@@ -203 +203 @@
-@@ -1625,5 +1625,5 @@ bnxt_dev_set_mc_addr_list_op(struct rte_eth_dev *eth_dev,
+@@ -1539,5 +1539,5 @@ bnxt_dev_set_mc_addr_list_op(struct rte_eth_dev *eth_dev,
@@ -210 +210 @@
-@@ -1654,5 +1654,5 @@ static int
+@@ -1567,5 +1567,5 @@ static int
@@ -217 +217 @@
-@@ -1783,5 +1783,5 @@ static int
+@@ -1676,5 +1676,5 @@ static int
@@ -224 +224 @@
-@@ -1803,5 +1803,5 @@ static int
+@@ -1696,5 +1696,5 @@ static int
@@ -231 +231 @@
-@@ -1811,5 +1811,5 @@ static int
+@@ -1704,5 +1704,5 @@ static int
@@ -238 +238 @@
-@@ -2003,5 +2003,5 @@ bnxt_ethertype_filter(struct rte_eth_dev *dev,
+@@ -1896,5 +1896,5 @@ bnxt_ethertype_filter(struct rte_eth_dev *dev,
@@ -245 +245 @@
-@@ -2307,5 +2307,5 @@ bnxt_ntuple_filter(struct rte_eth_dev *dev,
+@@ -2200,5 +2200,5 @@ bnxt_ntuple_filter(struct rte_eth_dev *dev,
@@ -252 +252 @@
-@@ -2624,5 +2624,5 @@ bnxt_fdir_filter(struct rte_eth_dev *dev,
+@@ -2516,5 +2516,5 @@ bnxt_fdir_filter(struct rte_eth_dev *dev,
@@ -259 +259 @@
-@@ -2911,5 +2911,5 @@ bnxt_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
+@@ -2802,5 +2802,5 @@ bnxt_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
@@ -266 +266 @@
-@@ -2928,5 +2928,5 @@ bnxt_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
+@@ -2819,5 +2819,5 @@ bnxt_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
@@ -273 +273 @@
-@@ -2943,5 +2943,5 @@ static int
+@@ -2834,5 +2834,5 @@ static int
@@ -280 +280 @@
-@@ -2979,5 +2979,5 @@ static int
+@@ -2870,5 +2870,5 @@ static int
@@ -287 +287 @@
-@@ -3001,5 +3001,5 @@ bnxt_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
+@@ -2892,5 +2892,5 @@ bnxt_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
@@ -294 +294 @@
-@@ -3019,5 +3019,5 @@ bnxt_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
+@@ -2910,5 +2910,5 @@ bnxt_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
@@ -301 +301 @@
-@@ -3037,5 +3037,5 @@ static int
+@@ -2928,5 +2928,5 @@ static int
@@ -308 +308 @@
-@@ -3051,5 +3051,5 @@ static int
+@@ -2942,5 +2942,5 @@ static int
@@ -315 +315 @@
-@@ -3071,5 +3071,5 @@ bnxt_get_eeprom_op(struct rte_eth_dev *dev,
+@@ -2962,5 +2962,5 @@ bnxt_get_eeprom_op(struct rte_eth_dev *dev,
@@ -322 +322 @@
-@@ -3142,5 +3142,5 @@ bnxt_set_eeprom_op(struct rte_eth_dev *dev,
+@@ -3033,5 +3033,5 @@ bnxt_set_eeprom_op(struct rte_eth_dev *dev,
@@ -330 +330 @@
-index bb7f672fc..6f92e3de5 100644
+index 1afe67407..6a5995389 100644
@@ -347 +347 @@
-@@ -1000,5 +1000,5 @@ bnxt_flow_create(struct rte_eth_dev *dev,
+@@ -999,5 +999,5 @@ bnxt_flow_create(struct rte_eth_dev *dev,
@@ -354 +354 @@
-@@ -1101,5 +1101,5 @@ bnxt_flow_destroy(struct rte_eth_dev *dev,
+@@ -1100,5 +1100,5 @@ bnxt_flow_destroy(struct rte_eth_dev *dev,
@@ -361 +361 @@
-@@ -1130,5 +1130,5 @@ static int
+@@ -1129,5 +1129,5 @@ static int
@@ -380 +380 @@
-index 2ce2ef427..31ab38f1f 100644
+index 17e2909a7..efd5f947e 100644
@@ -390 +390 @@
-@@ -405,5 +405,5 @@ bnxt_rx_queue_intr_disable_op(struct rte_eth_dev *eth_dev, uint16_t queue_id)
+@@ -400,5 +400,5 @@ bnxt_rx_queue_intr_disable_op(struct rte_eth_dev *eth_dev, uint16_t queue_id)
@@ -397 +397 @@
-@@ -445,5 +445,5 @@ int bnxt_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
+@@ -440,5 +440,5 @@ int bnxt_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
@@ -405 +405 @@
-index cae3b9ea2..ad2888774 100644
+index c16bf99da..77f855d48 100644
@@ -408 +408 @@
-@@ -388,5 +388,5 @@ int bnxt_stats_get_op(struct rte_eth_dev *eth_dev,
+@@ -387,5 +387,5 @@ int bnxt_stats_get_op(struct rte_eth_dev *eth_dev,
@@ -415 +415 @@
-@@ -407,5 +407,5 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
+@@ -406,5 +406,5 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
@@ -422 +422 @@
-@@ -533,5 +533,5 @@ int bnxt_dev_xstats_get_names_op(__rte_unused struct rte_eth_dev *eth_dev,
+@@ -537,5 +537,5 @@ int bnxt_dev_xstats_get_names_op(__rte_unused struct rte_eth_dev *eth_dev,
@@ -430 +430 @@
-index 5a7bfaf3e..665bfbc12 100644
+index b9b975e4c..d6b93b44a 100644
@@ -433 +433 @@
-@@ -81,5 +81,5 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev,
+@@ -80,5 +80,5 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev,
@@ -441 +441 @@
-index 16598ba63..5018c299a 100644
+index 82ab46501..95272c999 100644
@@ -444 +444 @@
-@@ -461,5 +461,5 @@ uint16_t bnxt_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -445,5 +445,5 @@ uint16_t bnxt_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -451 +451 @@
-@@ -473,5 +473,5 @@ int bnxt_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
+@@ -457,5 +457,5 @@ int bnxt_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
@@ -459 +459 @@
-index f07789670..fbd2dd493 100644
+index c298de83c..56a58a2f8 100644
@@ -553 +553 @@
-@@ -664,5 +664,5 @@ int rte_pmd_bnxt_mac_addr_add(uint16_t port, struct rte_ether_addr *addr,
+@@ -664,5 +664,5 @@ int rte_pmd_bnxt_mac_addr_add(uint16_t port, struct ether_addr *addr,

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

* [dpdk-stable] patch 'net/bonding: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (2 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/cxgbe: " Kevin Traynor
                   ` (55 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/d946ec272036f94ddd182aaeb852463dbd61d2cc

Thanks.

Kevin Traynor

---
From d946ec272036f94ddd182aaeb852463dbd61d2cc Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:54 -0700
Subject: [PATCH] net/bonding: remove unnecessary cast

[ upstream commit 0b07f6e992a29fa994d3281d80a74b0e10b181ef ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 154257ffe..64518200e 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -159,6 +159,5 @@ bond_ethdev_8023ad_flow_verify(struct rte_eth_dev *bond_dev,
 	struct rte_eth_dev_info slave_info;
 	struct rte_flow_error error;
-	struct bond_dev_private *internals = (struct bond_dev_private *)
-			(bond_dev->data->dev_private);
+	struct bond_dev_private *internals = bond_dev->data->dev_private;
 
 	const struct rte_flow_action_queue lacp_queue_conf = {
@@ -200,6 +199,5 @@ int
 bond_8023ad_slow_pkt_hw_filter_supported(uint16_t port_id) {
 	struct rte_eth_dev *bond_dev = &rte_eth_devices[port_id];
-	struct bond_dev_private *internals = (struct bond_dev_private *)
-			(bond_dev->data->dev_private);
+	struct bond_dev_private *internals = bond_dev->data->dev_private;
 	struct rte_eth_dev_info bond_info;
 	uint16_t idx;
@@ -226,7 +224,5 @@ bond_ethdev_8023ad_flow_set(struct rte_eth_dev *bond_dev, uint16_t slave_port) {
 
 	struct rte_flow_error error;
-	struct bond_dev_private *internals = (struct bond_dev_private *)
-			(bond_dev->data->dev_private);
-
+	struct bond_dev_private *internals = bond_dev->data->dev_private;
 	struct rte_flow_action_queue lacp_queue_conf = {
 		.index = internals->mode4.dedicated_queues.rx_qid,
@@ -1718,6 +1714,5 @@ slave_configure_slow_queue(struct rte_eth_dev *bonded_eth_dev,
 {
 	int errval = 0;
-	struct bond_dev_private *internals = (struct bond_dev_private *)
-		bonded_eth_dev->data->dev_private;
+	struct bond_dev_private *internals = bonded_eth_dev->data->dev_private;
 	struct port *port = &bond_mode_8023ad_ports[slave_eth_dev->data->port_id];
 
@@ -1785,6 +1780,5 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
 	struct rte_flow_error flow_error;
 
-	struct bond_dev_private *internals = (struct bond_dev_private *)
-		bonded_eth_dev->data->dev_private;
+	struct bond_dev_private *internals = bonded_eth_dev->data->dev_private;
 
 	/* Stop slave */
@@ -2404,6 +2398,6 @@ bond_ethdev_slave_link_status_change_monitor(void *cb_arg)
 		return;
 
-	bonded_ethdev = (struct rte_eth_dev *)cb_arg;
-	internals = (struct bond_dev_private *)bonded_ethdev->data->dev_private;
+	bonded_ethdev = cb_arg;
+	internals = bonded_ethdev->data->dev_private;
 
 	if (!bonded_ethdev->data->dev_started ||
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.358272483 +0100
+++ 0005-net-bonding-remove-unnecessary-cast.patch	2019-06-24 16:18:54.940433371 +0100
@@ -1 +1 @@
-From 0b07f6e992a29fa994d3281d80a74b0e10b181ef Mon Sep 17 00:00:00 2001
+From d946ec272036f94ddd182aaeb852463dbd61d2cc Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0b07f6e992a29fa994d3281d80a74b0e10b181ef ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -18 +18 @@
-index ca3494552..6a6ed890a 100644
+index 154257ffe..64518200e 100644
@@ -21 +21 @@
-@@ -161,6 +161,5 @@ bond_ethdev_8023ad_flow_verify(struct rte_eth_dev *bond_dev,
+@@ -159,6 +159,5 @@ bond_ethdev_8023ad_flow_verify(struct rte_eth_dev *bond_dev,
@@ -29 +29 @@
-@@ -202,6 +201,5 @@ int
+@@ -200,6 +199,5 @@ int
@@ -37 +37 @@
-@@ -228,7 +226,5 @@ bond_ethdev_8023ad_flow_set(struct rte_eth_dev *bond_dev, uint16_t slave_port) {
+@@ -226,7 +224,5 @@ bond_ethdev_8023ad_flow_set(struct rte_eth_dev *bond_dev, uint16_t slave_port) {
@@ -46 +46 @@
-@@ -1736,6 +1732,5 @@ slave_configure_slow_queue(struct rte_eth_dev *bonded_eth_dev,
+@@ -1718,6 +1714,5 @@ slave_configure_slow_queue(struct rte_eth_dev *bonded_eth_dev,
@@ -54 +54 @@
-@@ -1803,6 +1798,5 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
+@@ -1785,6 +1780,5 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
@@ -62 +62 @@
-@@ -2422,6 +2416,6 @@ bond_ethdev_slave_link_status_change_monitor(void *cb_arg)
+@@ -2404,6 +2398,6 @@ bond_ethdev_slave_link_status_change_monitor(void *cb_arg)

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

* [dpdk-stable] patch 'net/cxgbe: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (3 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bonding: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
                   ` (54 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/24bcb27e29292d6f55c0b09ff68a9de06349b884

Thanks.

Kevin Traynor

---
From 24bcb27e29292d6f55c0b09ff68a9de06349b884 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:55 -0700
Subject: [PATCH] net/cxgbe: remove unnecessary cast

[ upstream commit 63a97e588b1f7a9d9533153058276af6e9abd2be ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/cxgbe/base/adapter.h   |  2 +-
 drivers/net/cxgbe/cxgbe_ethdev.c   | 60 +++++++++++++++---------------
 drivers/net/cxgbe/cxgbe_filter.c   |  2 +-
 drivers/net/cxgbe/cxgbe_main.c     |  6 +--
 drivers/net/cxgbe/cxgbevf_ethdev.c |  6 +--
 drivers/net/cxgbe/cxgbevf_main.c   |  2 +-
 drivers/net/cxgbe/sge.c            |  8 ++--
 7 files changed, 43 insertions(+), 43 deletions(-)

diff --git a/drivers/net/cxgbe/base/adapter.h b/drivers/net/cxgbe/base/adapter.h
index 47cfc5f5f..063e5bd7c 100644
--- a/drivers/net/cxgbe/base/adapter.h
+++ b/drivers/net/cxgbe/base/adapter.h
@@ -369,5 +369,5 @@ static inline void t4_os_write_unlock(rte_rwlock_t *lock)
 static inline struct port_info *ethdev2pinfo(const struct rte_eth_dev *dev)
 {
-	return (struct port_info *)dev->data->dev_private;
+	return dev->data->dev_private;
 }
 
diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index 308537880..0b7800b3c 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe/cxgbe_ethdev.c
@@ -113,5 +113,5 @@ void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
 			struct rte_eth_dev_info *device_info)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	int max_queues = adapter->sge.max_ethqsets / adapter->params.nports;
@@ -149,5 +149,5 @@ void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
 void cxgbe_dev_promiscuous_enable(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 
@@ -158,5 +158,5 @@ void cxgbe_dev_promiscuous_enable(struct rte_eth_dev *eth_dev)
 void cxgbe_dev_promiscuous_disable(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 
@@ -167,5 +167,5 @@ void cxgbe_dev_promiscuous_disable(struct rte_eth_dev *eth_dev)
 void cxgbe_dev_allmulticast_enable(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 
@@ -178,5 +178,5 @@ void cxgbe_dev_allmulticast_enable(struct rte_eth_dev *eth_dev)
 void cxgbe_dev_allmulticast_disable(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 
@@ -190,5 +190,5 @@ int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev,
 			  int wait_to_complete)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	struct sge *s = &adapter->sge;
@@ -225,5 +225,5 @@ int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev,
 int cxgbe_dev_set_link_up(struct rte_eth_dev *dev)
 {
-	struct port_info *pi = (struct port_info *)(dev->data->dev_private);
+	struct port_info *pi = dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	unsigned int work_done, budget = 32;
@@ -251,5 +251,5 @@ int cxgbe_dev_set_link_up(struct rte_eth_dev *dev)
 int cxgbe_dev_set_link_down(struct rte_eth_dev *dev)
 {
-	struct port_info *pi = (struct port_info *)(dev->data->dev_private);
+	struct port_info *pi = dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	unsigned int work_done, budget = 32;
@@ -274,5 +274,5 @@ int cxgbe_dev_set_link_down(struct rte_eth_dev *dev)
 int cxgbe_dev_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	struct rte_eth_dev_info dev_info;
@@ -307,5 +307,5 @@ int cxgbe_dev_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu)
 void cxgbe_dev_close(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 
@@ -329,5 +329,5 @@ void cxgbe_dev_close(struct rte_eth_dev *eth_dev)
 int cxgbe_dev_start(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct rte_eth_rxmode *rx_conf = &eth_dev->data->dev_conf.rxmode;
 	struct adapter *adapter = pi->adapter;
@@ -387,5 +387,5 @@ out:
 void cxgbe_dev_stop(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 
@@ -407,5 +407,5 @@ void cxgbe_dev_stop(struct rte_eth_dev *eth_dev)
 int cxgbe_dev_configure(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	int err;
@@ -467,5 +467,5 @@ int cxgbe_dev_tx_queue_setup(struct rte_eth_dev *eth_dev,
 			     const struct rte_eth_txconf *tx_conf __rte_unused)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	struct sge *s = &adapter->sge;
@@ -532,5 +532,5 @@ int cxgbe_dev_rx_queue_start(struct rte_eth_dev *eth_dev, uint16_t rx_queue_id)
 {
 	int ret;
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adap = pi->adapter;
 	struct sge_rspq *q;
@@ -551,5 +551,5 @@ int cxgbe_dev_rx_queue_stop(struct rte_eth_dev *eth_dev, uint16_t rx_queue_id)
 {
 	int ret;
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adap = pi->adapter;
 	struct sge_rspq *q;
@@ -572,5 +572,5 @@ int cxgbe_dev_rx_queue_setup(struct rte_eth_dev *eth_dev,
 			     struct rte_mempool *mp)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	struct sge *s = &adapter->sge;
@@ -669,5 +669,5 @@ static int cxgbe_dev_stats_get(struct rte_eth_dev *eth_dev,
 				struct rte_eth_stats *eth_stats)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	struct sge *s = &adapter->sge;
@@ -716,5 +716,5 @@ static int cxgbe_dev_stats_get(struct rte_eth_dev *eth_dev,
 static void cxgbe_dev_stats_reset(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	struct sge *s = &adapter->sge;
@@ -742,5 +742,5 @@ static int cxgbe_flow_ctrl_get(struct rte_eth_dev *eth_dev,
 			       struct rte_eth_fc_conf *fc_conf)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct link_config *lc = &pi->link_cfg;
 	int rx_pause, tx_pause;
@@ -764,5 +764,5 @@ static int cxgbe_flow_ctrl_set(struct rte_eth_dev *eth_dev,
 			       struct rte_eth_fc_conf *fc_conf)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	struct link_config *lc = &pi->link_cfg;
@@ -810,5 +810,5 @@ static int cxgbe_dev_rss_hash_update(struct rte_eth_dev *dev,
 				     struct rte_eth_rss_conf *rss_conf)
 {
-	struct port_info *pi = (struct port_info *)(dev->data->dev_private);
+	struct port_info *pi = dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	int err;
@@ -840,5 +840,5 @@ static int cxgbe_dev_rss_hash_conf_get(struct rte_eth_dev *dev,
 				       struct rte_eth_rss_conf *rss_conf)
 {
-	struct port_info *pi = (struct port_info *)(dev->data->dev_private);
+	struct port_info *pi = dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	u64 rss_hf = 0;
@@ -949,5 +949,5 @@ static int cxgbe_get_eeprom(struct rte_eth_dev *dev,
 			    struct rte_dev_eeprom_info *e)
 {
-	struct port_info *pi = (struct port_info *)(dev->data->dev_private);
+	struct port_info *pi = dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	u32 i, err = 0;
@@ -970,5 +970,5 @@ static int cxgbe_set_eeprom(struct rte_eth_dev *dev,
 			    struct rte_dev_eeprom_info *eeprom)
 {
-	struct port_info *pi = (struct port_info *)(dev->data->dev_private);
+	struct port_info *pi = dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	u8 *buf;
@@ -1028,5 +1028,5 @@ out:
 static int cxgbe_get_regs_len(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 
@@ -1037,5 +1037,5 @@ static int cxgbe_get_regs(struct rte_eth_dev *eth_dev,
 			  struct rte_dev_reg_info *regs)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 
@@ -1058,5 +1058,5 @@ static int cxgbe_get_regs(struct rte_eth_dev *eth_dev,
 int cxgbe_mac_addr_set(struct rte_eth_dev *dev, struct ether_addr *addr)
 {
-	struct port_info *pi = (struct port_info *)(dev->data->dev_private);
+	struct port_info *pi = dev->data->dev_private;
 	int ret;
 
@@ -1115,5 +1115,5 @@ static int eth_cxgbe_dev_init(struct rte_eth_dev *eth_dev)
 {
 	struct rte_pci_device *pci_dev;
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = NULL;
 	char name[RTE_ETH_NAME_MAX_LEN];
@@ -1186,5 +1186,5 @@ out_free_adapter:
 static int eth_cxgbe_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adap = pi->adapter;
 
diff --git a/drivers/net/cxgbe/cxgbe_filter.c b/drivers/net/cxgbe/cxgbe_filter.c
index 3a7912e48..932127018 100644
--- a/drivers/net/cxgbe/cxgbe_filter.c
+++ b/drivers/net/cxgbe/cxgbe_filter.c
@@ -854,5 +854,5 @@ int cxgbe_del_filter(struct rte_eth_dev *dev, unsigned int filter_id,
 		     struct filter_ctx *ctx)
 {
-	struct port_info *pi = (struct port_info *)(dev->data->dev_private);
+	struct port_info *pi = dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	struct filter_entry *f;
diff --git a/drivers/net/cxgbe/cxgbe_main.c b/drivers/net/cxgbe/cxgbe_main.c
index dbdbbd170..38938ecc0 100644
--- a/drivers/net/cxgbe/cxgbe_main.c
+++ b/drivers/net/cxgbe/cxgbe_main.c
@@ -478,5 +478,5 @@ static inline void init_rspq(struct adapter *adap, struct sge_rspq *q,
 int cxgbe_cfg_queue_count(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adap = pi->adapter;
 	struct sge *s = &adap->sge;
@@ -505,5 +505,5 @@ int cxgbe_cfg_queue_count(struct rte_eth_dev *eth_dev)
 void cxgbe_cfg_queues(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adap = pi->adapter;
 	struct sge *s = &adap->sge;
@@ -1825,5 +1825,5 @@ int cxgbe_probe(struct adapter *adapter)
 
 allocate_mac:
-		pi = (struct port_info *)eth_dev->data->dev_private;
+		pi = eth_dev->data->dev_private;
 		adapter->port[i] = pi;
 		pi->eth_dev = eth_dev;
diff --git a/drivers/net/cxgbe/cxgbevf_ethdev.c b/drivers/net/cxgbe/cxgbevf_ethdev.c
index cc65ebe65..1577843ca 100644
--- a/drivers/net/cxgbe/cxgbevf_ethdev.c
+++ b/drivers/net/cxgbe/cxgbevf_ethdev.c
@@ -37,5 +37,5 @@ static int cxgbevf_dev_stats_get(struct rte_eth_dev *eth_dev,
 				 struct rte_eth_stats *eth_stats)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
 	struct sge *s = &adapter->sge;
@@ -107,5 +107,5 @@ static const struct eth_dev_ops cxgbevf_eth_dev_ops = {
 static int eth_cxgbevf_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct rte_pci_device *pci_dev;
 	char name[RTE_ETH_NAME_MAX_LEN];
@@ -179,5 +179,5 @@ out_free_adapter:
 static int eth_cxgbevf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adap = pi->adapter;
 
diff --git a/drivers/net/cxgbe/cxgbevf_main.c b/drivers/net/cxgbe/cxgbevf_main.c
index c46bc98a4..d05db06b5 100644
--- a/drivers/net/cxgbe/cxgbevf_main.c
+++ b/drivers/net/cxgbe/cxgbevf_main.c
@@ -231,5 +231,5 @@ int cxgbevf_probe(struct adapter *adapter)
 
 allocate_mac:
-		pi = (struct port_info *)eth_dev->data->dev_private;
+		pi = eth_dev->data->dev_private;
 		adapter->port[i] = pi;
 		pi->eth_dev = eth_dev;
diff --git a/drivers/net/cxgbe/sge.c b/drivers/net/cxgbe/sge.c
index 663c0a796..ea28ea06c 100644
--- a/drivers/net/cxgbe/sge.c
+++ b/drivers/net/cxgbe/sge.c
@@ -1138,5 +1138,5 @@ out_free:
 		goto out_free;
 
-	pi = (struct port_info *)txq->data->dev_private;
+	pi = txq->data->dev_private;
 	adap = pi->adapter;
 
@@ -1883,5 +1883,5 @@ int t4_sge_alloc_rxq(struct adapter *adap, struct sge_rspq *iq, bool fwevtq,
 	struct fw_iq_cmd c;
 	struct sge *s = &adap->sge;
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	char z_name[RTE_MEMZONE_NAMESIZE];
 	char z_name_sw[RTE_MEMZONE_NAMESIZE];
@@ -2153,5 +2153,5 @@ int t4_sge_alloc_eth_txq(struct adapter *adap, struct sge_eth_txq *txq,
 	struct fw_eq_eth_cmd c;
 	struct sge *s = &adap->sge;
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	char z_name[RTE_MEMZONE_NAMESIZE];
 	char z_name_sw[RTE_MEMZONE_NAMESIZE];
@@ -2232,5 +2232,5 @@ int t4_sge_alloc_ctrl_txq(struct adapter *adap, struct sge_ctrl_txq *txq,
 	struct fw_eq_ctrl_cmd c;
 	struct sge *s = &adap->sge;
-	struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+	struct port_info *pi = eth_dev->data->dev_private;
 	char z_name[RTE_MEMZONE_NAMESIZE];
 	char z_name_sw[RTE_MEMZONE_NAMESIZE];
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.404476190 +0100
+++ 0006-net-cxgbe-remove-unnecessary-cast.patch	2019-06-24 16:18:54.949433159 +0100
@@ -1 +1 @@
-From 63a97e588b1f7a9d9533153058276af6e9abd2be Mon Sep 17 00:00:00 2001
+From 24bcb27e29292d6f55c0b09ff68a9de06349b884 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 63a97e588b1f7a9d9533153058276af6e9abd2be ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -24 +24 @@
-index 122166410..e548f9f63 100644
+index 47cfc5f5f..063e5bd7c 100644
@@ -35 +35 @@
-index 67b08490b..3a373ec1d 100644
+index 308537880..0b7800b3c 100644
@@ -228 +228 @@
- int cxgbe_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *addr)
+ int cxgbe_mac_addr_set(struct rte_eth_dev *dev, struct ether_addr *addr)
@@ -249 +249 @@
-index a77935a65..7fcee5c0a 100644
+index 3a7912e48..932127018 100644
@@ -252 +252 @@
-@@ -855,5 +855,5 @@ int cxgbe_del_filter(struct rte_eth_dev *dev, unsigned int filter_id,
+@@ -854,5 +854,5 @@ int cxgbe_del_filter(struct rte_eth_dev *dev, unsigned int filter_id,
@@ -260 +260 @@
-index c3036e136..620f60b4d 100644
+index dbdbbd170..38938ecc0 100644
@@ -285 +285 @@
-index 0af9dd9f1..60e96aa4e 100644
+index cc65ebe65..1577843ca 100644
@@ -310 +310 @@
-index d3345508f..82f40f358 100644
+index c46bc98a4..d05db06b5 100644
@@ -321 +321 @@
-index b3c4ec2eb..641be9657 100644
+index 663c0a796..ea28ea06c 100644
@@ -324 +324 @@
-@@ -1139,5 +1139,5 @@ out_free:
+@@ -1138,5 +1138,5 @@ out_free:
@@ -331 +331 @@
-@@ -1793,5 +1793,5 @@ int t4_sge_alloc_rxq(struct adapter *adap, struct sge_rspq *iq, bool fwevtq,
+@@ -1883,5 +1883,5 @@ int t4_sge_alloc_rxq(struct adapter *adap, struct sge_rspq *iq, bool fwevtq,
@@ -338 +338 @@
-@@ -2063,5 +2063,5 @@ int t4_sge_alloc_eth_txq(struct adapter *adap, struct sge_eth_txq *txq,
+@@ -2153,5 +2153,5 @@ int t4_sge_alloc_eth_txq(struct adapter *adap, struct sge_eth_txq *txq,
@@ -345 +345 @@
-@@ -2142,5 +2142,5 @@ int t4_sge_alloc_ctrl_txq(struct adapter *adap, struct sge_ctrl_txq *txq,
+@@ -2232,5 +2232,5 @@ int t4_sge_alloc_ctrl_txq(struct adapter *adap, struct sge_ctrl_txq *txq,

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

* [dpdk-stable] patch 'net/e1000: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (4 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/cxgbe: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ena: " Kevin Traynor
                   ` (53 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/d6228b5684243f74f68bb375c79b40ef1f583282

Thanks.

Kevin Traynor

---
From d6228b5684243f74f68bb375c79b40ef1f583282 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:56 -0700
Subject: [PATCH] net/e1000: remove unnecessary cast

[ upstream commit 130d2b77f0e507b4a41372aca94854d2f37cea53 ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/e1000/igb_ethdev.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index 87c9aedf2..96ccf9763 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -5022,6 +5022,5 @@ igb_start_timecounters(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct e1000_adapter *adapter =
-		(struct e1000_adapter *)dev->data->dev_private;
+	struct e1000_adapter *adapter = dev->data->dev_private;
 	uint32_t incval = 1;
 	uint32_t shift = 0;
@@ -5074,6 +5073,5 @@ static int
 igb_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)
 {
-	struct e1000_adapter *adapter =
-			(struct e1000_adapter *)dev->data->dev_private;
+	struct e1000_adapter *adapter = dev->data->dev_private;
 
 	adapter->systime_tc.nsec += delta;
@@ -5088,6 +5086,5 @@ igb_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
 {
 	uint64_t ns;
-	struct e1000_adapter *adapter =
-			(struct e1000_adapter *)dev->data->dev_private;
+	struct e1000_adapter *adapter = dev->data->dev_private;
 
 	ns = rte_timespec_to_ns(ts);
@@ -5105,6 +5102,5 @@ igb_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
 {
 	uint64_t ns, systime_cycles;
-	struct e1000_adapter *adapter =
-			(struct e1000_adapter *)dev->data->dev_private;
+	struct e1000_adapter *adapter = dev->data->dev_private;
 
 	systime_cycles = igb_read_systime_cyclecounter(dev);
@@ -5199,6 +5195,5 @@ igb_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct e1000_adapter *adapter =
-			(struct e1000_adapter *)dev->data->dev_private;
+	struct e1000_adapter *adapter = dev->data->dev_private;
 	uint32_t tsync_rxctl;
 	uint64_t rx_tstamp_cycles;
@@ -5221,6 +5216,5 @@ igb_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct e1000_adapter *adapter =
-			(struct e1000_adapter *)dev->data->dev_private;
+	struct e1000_adapter *adapter = dev->data->dev_private;
 	uint32_t tsync_txctl;
 	uint64_t tx_tstamp_cycles;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.456837758 +0100
+++ 0007-net-e1000-remove-unnecessary-cast.patch	2019-06-24 16:18:54.954433041 +0100
@@ -1 +1 @@
-From 130d2b77f0e507b4a41372aca94854d2f37cea53 Mon Sep 17 00:00:00 2001
+From d6228b5684243f74f68bb375c79b40ef1f583282 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 130d2b77f0e507b4a41372aca94854d2f37cea53 ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -18 +18 @@
-index 29c550052..4436f9d3c 100644
+index 87c9aedf2..96ccf9763 100644
@@ -21 +21 @@
-@@ -5030,6 +5030,5 @@ igb_start_timecounters(struct rte_eth_dev *dev)
+@@ -5022,6 +5022,5 @@ igb_start_timecounters(struct rte_eth_dev *dev)
@@ -29 +29 @@
-@@ -5082,6 +5081,5 @@ static int
+@@ -5074,6 +5073,5 @@ static int
@@ -37 +37 @@
-@@ -5096,6 +5094,5 @@ igb_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
+@@ -5088,6 +5086,5 @@ igb_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
@@ -45 +45 @@
-@@ -5113,6 +5110,5 @@ igb_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
+@@ -5105,6 +5102,5 @@ igb_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
@@ -53 +53 @@
-@@ -5207,6 +5203,5 @@ igb_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
+@@ -5199,6 +5195,5 @@ igb_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
@@ -61 +61 @@
-@@ -5229,6 +5224,5 @@ igb_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
+@@ -5221,6 +5216,5 @@ igb_timesync_read_tx_timestamp(struct rte_eth_dev *dev,

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

* [dpdk-stable] patch 'net/ena: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (5 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
                   ` (52 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/75a955f20a31803b97635cef555ea646e7ef7bdc

Thanks.

Kevin Traynor

---
From 75a955f20a31803b97635cef555ea646e7ef7bdc Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:57 -0700
Subject: [PATCH] net/ena: remove unnecessary cast

[ upstream commit 890728ff21d47960925bbee6b30ff6c50e6a8f46 ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/ena/ena_ethdev.c | 60 +++++++++++++-----------------------
 1 file changed, 22 insertions(+), 38 deletions(-)

diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 6f424337e..82161f41c 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -518,6 +518,5 @@ static void ena_close(struct rte_eth_dev *dev)
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 
 	if (adapter->state == ENA_ADAPTER_STATE_RUNNING)
@@ -560,6 +559,5 @@ static int ena_rss_reta_update(struct rte_eth_dev *dev,
 			       uint16_t reta_size)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
 	int rc, i;
@@ -616,6 +614,5 @@ static int ena_rss_reta_query(struct rte_eth_dev *dev,
 			      uint16_t reta_size)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
 	int rc;
@@ -789,7 +786,5 @@ static int ena_link_update(struct rte_eth_dev *dev,
 {
 	struct rte_eth_link *link = &dev->data->dev_link;
-	struct ena_adapter *adapter;
-
-	adapter = (struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 
 	link->link_status = adapter->link_status ? ETH_LINK_UP : ETH_LINK_DOWN;
@@ -803,6 +798,5 @@ static int ena_queue_start_all(struct rte_eth_dev *dev,
 			       enum ena_ring_type ring_type)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 	struct ena_ring *queues = NULL;
 	int nb_queues;
@@ -909,6 +903,5 @@ ena_calc_queue_size(struct ena_com_dev *ena_dev,
 static void ena_stats_restart(struct rte_eth_dev *dev)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 
 	rte_atomic64_init(&adapter->drv_stats->ierrors);
@@ -921,6 +914,5 @@ static int ena_stats_get(struct rte_eth_dev *dev,
 {
 	struct ena_admin_basic_stats ena_stats;
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
 	int rc;
@@ -963,5 +955,5 @@ static int ena_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 	ena_assert_msg(dev->data != NULL, "Uninitialized device");
 	ena_assert_msg(dev->data->dev_private != NULL, "Uninitialized device");
-	adapter = (struct ena_adapter *)(dev->data->dev_private);
+	adapter = dev->data->dev_private;
 
 	ena_dev = &adapter->ena_dev;
@@ -987,6 +979,5 @@ static int ena_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 static int ena_start(struct rte_eth_dev *dev)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 	uint64_t ticks;
 	int rc = 0;
@@ -1033,6 +1024,5 @@ err_start_tx:
 static void ena_stop(struct rte_eth_dev *dev)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
 	int rc;
@@ -1125,6 +1115,5 @@ static void ena_queue_stop_all(struct rte_eth_dev *dev,
 			      enum ena_ring_type ring_type)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 	struct ena_ring *queues = NULL;
 	uint16_t nb_queues, i;
@@ -1181,6 +1170,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
 {
 	struct ena_ring *txq = NULL;
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 	unsigned int i;
 
@@ -1253,6 +1241,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
 			      struct rte_mempool *mp)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 	struct ena_ring *rxq = NULL;
 	int i;
@@ -1493,5 +1480,5 @@ err_mmio_read_less:
 static void ena_interrupt_handler_rte(void *cb_arg)
 {
-	struct ena_adapter *adapter = (struct ena_adapter *)cb_arg;
+	struct ena_adapter *adapter = cb_arg;
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
 
@@ -1530,5 +1517,5 @@ static void ena_timer_wd_callback(__rte_unused struct rte_timer *timer,
 				  void *arg)
 {
-	struct ena_adapter *adapter = (struct ena_adapter *)arg;
+	struct ena_adapter *adapter = arg;
 	struct rte_eth_dev *dev = adapter->rte_dev;
 
@@ -1565,6 +1552,5 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
 	struct rte_pci_device *pci_dev;
 	struct rte_intr_handle *intr_handle;
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(eth_dev->data->dev_private);
+	struct ena_adapter *adapter = eth_dev->data->dev_private;
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
 	struct ena_com_dev_get_features_ctx get_feat_ctx;
@@ -1701,6 +1687,5 @@ err:
 static void ena_destroy_device(struct rte_eth_dev *eth_dev)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(eth_dev->data->dev_private);
+	struct ena_adapter *adapter = eth_dev->data->dev_private;
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
 
@@ -1741,6 +1726,5 @@ static int eth_ena_dev_uninit(struct rte_eth_dev *eth_dev)
 static int ena_dev_configure(struct rte_eth_dev *dev)
 {
-	struct ena_adapter *adapter =
-		(struct ena_adapter *)(dev->data->dev_private);
+	struct ena_adapter *adapter = dev->data->dev_private;
 
 	adapter->state = ENA_ADAPTER_STATE_CONFIG;
@@ -1788,5 +1772,5 @@ static void ena_infos_get(struct rte_eth_dev *dev,
 	ena_assert_msg(dev->data != NULL, "Uninitialized device");
 	ena_assert_msg(dev->data->dev_private != NULL, "Uninitialized device");
-	adapter = (struct ena_adapter *)(dev->data->dev_private);
+	adapter = dev->data->dev_private;
 
 	ena_dev = &adapter->ena_dev;
@@ -2268,5 +2252,5 @@ static void ena_update_on_link_change(void *adapter_data,
 	uint32_t status;
 
-	adapter = (struct ena_adapter *)adapter_data;
+	adapter = adapter_data;
 	aenq_link_desc = (struct ena_admin_aenq_link_change_desc *)aenq_e;
 	eth_dev = adapter->rte_dev;
@@ -2282,5 +2266,5 @@ static void ena_notification(void *data,
 			     struct ena_admin_aenq_entry *aenq_e)
 {
-	struct ena_adapter *adapter = (struct ena_adapter *)data;
+	struct ena_adapter *adapter = data;
 	struct ena_admin_ena_hw_hints *hints;
 
@@ -2305,5 +2289,5 @@ static void ena_keep_alive(void *adapter_data,
 			   __rte_unused struct ena_admin_aenq_entry *aenq_e)
 {
-	struct ena_adapter *adapter = (struct ena_adapter *)adapter_data;
+	struct ena_adapter *adapter = adapter_data;
 
 	adapter->timestamp_wd = rte_get_timer_cycles();
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.508884719 +0100
+++ 0008-net-ena-remove-unnecessary-cast.patch	2019-06-24 16:18:54.957432970 +0100
@@ -1 +1 @@
-From 890728ff21d47960925bbee6b30ff6c50e6a8f46 Mon Sep 17 00:00:00 2001
+From 75a955f20a31803b97635cef555ea646e7ef7bdc Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 890728ff21d47960925bbee6b30ff6c50e6a8f46 ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -14,2 +14,2 @@
- drivers/net/ena/ena_ethdev.c | 66 +++++++++++++-----------------------
- 1 file changed, 24 insertions(+), 42 deletions(-)
+ drivers/net/ena/ena_ethdev.c | 60 +++++++++++++-----------------------
+ 1 file changed, 22 insertions(+), 38 deletions(-)
@@ -18 +18 @@
-index b6651fc0f..ad9b13189 100644
+index 6f424337e..82161f41c 100644
@@ -21 +21 @@
-@@ -494,6 +494,5 @@ static void ena_close(struct rte_eth_dev *dev)
+@@ -518,6 +518,5 @@ static void ena_close(struct rte_eth_dev *dev)
@@ -29 +29 @@
-@@ -536,6 +535,5 @@ static int ena_rss_reta_update(struct rte_eth_dev *dev,
+@@ -560,6 +559,5 @@ static int ena_rss_reta_update(struct rte_eth_dev *dev,
@@ -37 +37 @@
-@@ -592,6 +590,5 @@ static int ena_rss_reta_query(struct rte_eth_dev *dev,
+@@ -616,6 +614,5 @@ static int ena_rss_reta_query(struct rte_eth_dev *dev,
@@ -45 +45 @@
-@@ -769,7 +766,5 @@ static int ena_link_update(struct rte_eth_dev *dev,
+@@ -789,7 +786,5 @@ static int ena_link_update(struct rte_eth_dev *dev,
@@ -54 +54 @@
-@@ -783,6 +778,5 @@ static int ena_queue_start_all(struct rte_eth_dev *dev,
+@@ -803,6 +798,5 @@ static int ena_queue_start_all(struct rte_eth_dev *dev,
@@ -62 +62 @@
-@@ -929,6 +923,5 @@ ena_calc_queue_size(struct ena_calc_queue_size_ctx *ctx)
+@@ -909,6 +903,5 @@ ena_calc_queue_size(struct ena_com_dev *ena_dev,
@@ -70 +70 @@
-@@ -942,6 +935,5 @@ static int ena_stats_get(struct rte_eth_dev *dev,
+@@ -921,6 +914,5 @@ static int ena_stats_get(struct rte_eth_dev *dev,
@@ -78,3 +78,3 @@
-@@ -1006,5 +998,5 @@ static int ena_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
- 	ena_assert_msg(dev->data != NULL, "Uninitialized device\n");
- 	ena_assert_msg(dev->data->dev_private != NULL, "Uninitialized device\n");
+@@ -963,5 +955,5 @@ static int ena_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
+ 	ena_assert_msg(dev->data != NULL, "Uninitialized device");
+ 	ena_assert_msg(dev->data->dev_private != NULL, "Uninitialized device");
@@ -85 +85 @@
-@@ -1030,6 +1022,5 @@ static int ena_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
+@@ -987,6 +979,5 @@ static int ena_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
@@ -93 +93 @@
-@@ -1077,6 +1068,5 @@ err_start_tx:
+@@ -1033,6 +1024,5 @@ err_start_tx:
@@ -101 +101 @@
-@@ -1170,6 +1160,5 @@ static void ena_queue_stop_all(struct rte_eth_dev *dev,
+@@ -1125,6 +1115,5 @@ static void ena_queue_stop_all(struct rte_eth_dev *dev,
@@ -109 +109 @@
-@@ -1229,6 +1218,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
+@@ -1181,6 +1170,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
@@ -117 +117 @@
-@@ -1314,6 +1302,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -1253,6 +1241,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
@@ -125 +125 @@
-@@ -1559,5 +1546,5 @@ err_mmio_read_less:
+@@ -1493,5 +1480,5 @@ err_mmio_read_less:
@@ -132 +132 @@
-@@ -1597,5 +1584,5 @@ static void ena_timer_wd_callback(__rte_unused struct rte_timer *timer,
+@@ -1530,5 +1517,5 @@ static void ena_timer_wd_callback(__rte_unused struct rte_timer *timer,
@@ -139 +139 @@
-@@ -1704,6 +1691,5 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
+@@ -1565,6 +1552,5 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
@@ -147 +147 @@
-@@ -1863,6 +1849,5 @@ err:
+@@ -1701,6 +1687,5 @@ err:
@@ -155 +155 @@
-@@ -1903,6 +1888,5 @@ static int eth_ena_dev_uninit(struct rte_eth_dev *eth_dev)
+@@ -1741,6 +1726,5 @@ static int eth_ena_dev_uninit(struct rte_eth_dev *eth_dev)
@@ -163,3 +163,3 @@
-@@ -1949,5 +1933,5 @@ static void ena_infos_get(struct rte_eth_dev *dev,
- 	ena_assert_msg(dev->data != NULL, "Uninitialized device\n");
- 	ena_assert_msg(dev->data->dev_private != NULL, "Uninitialized device\n");
+@@ -1788,5 +1772,5 @@ static void ena_infos_get(struct rte_eth_dev *dev,
+ 	ena_assert_msg(dev->data != NULL, "Uninitialized device");
+ 	ena_assert_msg(dev->data->dev_private != NULL, "Uninitialized device");
@@ -170,17 +170 @@
-@@ -2507,6 +2491,5 @@ static int ena_xstats_get(struct rte_eth_dev *dev,
- 			  unsigned int n)
- {
--	struct ena_adapter *adapter =
--			(struct ena_adapter *)(dev->data->dev_private);
-+	struct ena_adapter *adapter = dev->data->dev_private;
- 	unsigned int xstats_count = ena_xstats_calc_num(dev);
- 	unsigned int stat, i, count = 0;
-@@ -2559,6 +2542,5 @@ static int ena_xstats_get_by_id(struct rte_eth_dev *dev,
- 				unsigned int n)
- {
--	struct ena_adapter *adapter =
--		(struct ena_adapter *)(dev->data->dev_private);
-+	struct ena_adapter *adapter = dev->data->dev_private;
- 	uint64_t id;
- 	uint64_t rx_entries, tx_entries;
-@@ -2650,5 +2632,5 @@ static void ena_update_on_link_change(void *adapter_data,
+@@ -2268,5 +2252,5 @@ static void ena_update_on_link_change(void *adapter_data,
@@ -193 +177 @@
-@@ -2664,5 +2646,5 @@ static void ena_notification(void *data,
+@@ -2282,5 +2266,5 @@ static void ena_notification(void *data,
@@ -200 +184 @@
-@@ -2687,5 +2669,5 @@ static void ena_keep_alive(void *adapter_data,
+@@ -2305,5 +2289,5 @@ static void ena_keep_alive(void *adapter_data,
@@ -205,2 +189,2 @@
- 	struct ena_admin_aenq_keep_alive_desc *desc;
- 	uint64_t rx_drops;
+ 
+ 	adapter->timestamp_wd = rte_get_timer_cycles();

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

* [dpdk-stable] patch 'net/enic: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (6 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ena: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
                   ` (51 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/e72c196272ffa9e77c526f4e8fd7dbd568e3fb95

Thanks.

Kevin Traynor

---
From e72c196272ffa9e77c526f4e8fd7dbd568e3fb95 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:58 -0700
Subject: [PATCH] net/enic: remove unnecessary cast

[ upstream commit 69b16b36b0a6e0d8db0df3c248c967ffdd77a0de ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/enic/enic.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index 377f607f7..4d6b82ee9 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -251,5 +251,5 @@ static inline unsigned int enic_cq_wq(struct enic *enic, unsigned int wq)
 static inline struct enic *pmd_priv(struct rte_eth_dev *eth_dev)
 {
-	return (struct enic *)eth_dev->data->dev_private;
+	return eth_dev->data->dev_private;
 }
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.555942947 +0100
+++ 0009-net-enic-remove-unnecessary-cast.patch	2019-06-24 16:18:54.957432970 +0100
@@ -1 +1 @@
-From 69b16b36b0a6e0d8db0df3c248c967ffdd77a0de Mon Sep 17 00:00:00 2001
+From e72c196272ffa9e77c526f4e8fd7dbd568e3fb95 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 69b16b36b0a6e0d8db0df3c248c967ffdd77a0de ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -18 +18 @@
-index bd2783430..beb439ee7 100644
+index 377f607f7..4d6b82ee9 100644
@@ -21 +21 @@
-@@ -253,5 +253,5 @@ static inline unsigned int enic_cq_wq(struct enic *enic, unsigned int wq)
+@@ -251,5 +251,5 @@ static inline unsigned int enic_cq_wq(struct enic *enic, unsigned int wq)

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

* [dpdk-stable] patch 'net/i40e: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (7 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
                   ` (50 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/da6355f3035f70c6bd422ec22e8dfe8ee35867c5

Thanks.

Kevin Traynor

---
From da6355f3035f70c6bd422ec22e8dfe8ee35867c5 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:14:59 -0700
Subject: [PATCH] net/i40e: remove unnecessary cast

[ upstream commit fc7a79b808eddd2b64bcda6d088f316f6e47a244 ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 24 +++++++-----------------
 1 file changed, 7 insertions(+), 17 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index af5e844b3..d93cb00d4 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -1210,9 +1210,7 @@ i40e_parse_latest_vec_handler(__rte_unused const char *key,
 				void *opaque)
 {
-	struct i40e_adapter *ad;
+	struct i40e_adapter *ad = opaque;
 	int use_latest_vec;
 
-	ad = (struct i40e_adapter *)opaque;
-
 	use_latest_vec = atoi(value);
 
@@ -10828,6 +10826,5 @@ i40e_start_timecounters(struct rte_eth_dev *dev)
 {
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct i40e_adapter *adapter =
-			(struct i40e_adapter *)dev->data->dev_private;
+	struct i40e_adapter *adapter = dev->data->dev_private;
 	struct rte_eth_link link;
 	uint32_t tsync_inc_l;
@@ -10881,6 +10878,5 @@ static int
 i40e_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)
 {
-	struct i40e_adapter *adapter =
-			(struct i40e_adapter *)dev->data->dev_private;
+	struct i40e_adapter *adapter = dev->data->dev_private;
 
 	adapter->systime_tc.nsec += delta;
@@ -10895,6 +10891,5 @@ i40e_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
 {
 	uint64_t ns;
-	struct i40e_adapter *adapter =
-			(struct i40e_adapter *)dev->data->dev_private;
+	struct i40e_adapter *adapter = dev->data->dev_private;
 
 	ns = rte_timespec_to_ns(ts);
@@ -10912,6 +10907,5 @@ i40e_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
 {
 	uint64_t ns, systime_cycles;
-	struct i40e_adapter *adapter =
-			(struct i40e_adapter *)dev->data->dev_private;
+	struct i40e_adapter *adapter = dev->data->dev_private;
 
 	systime_cycles = i40e_read_systime_cyclecounter(dev);
@@ -10989,7 +10983,5 @@ i40e_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
 {
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct i40e_adapter *adapter =
-		(struct i40e_adapter *)dev->data->dev_private;
-
+	struct i40e_adapter *adapter = dev->data->dev_private;
 	uint32_t sync_status;
 	uint32_t index = flags & 0x03;
@@ -11013,7 +11005,5 @@ i40e_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
 {
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct i40e_adapter *adapter =
-		(struct i40e_adapter *)dev->data->dev_private;
-
+	struct i40e_adapter *adapter = dev->data->dev_private;
 	uint32_t sync_status;
 	uint64_t tx_tstamp_cycles;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.602160044 +0100
+++ 0010-net-i40e-remove-unnecessary-cast.patch	2019-06-24 16:18:54.969432687 +0100
@@ -1 +1 @@
-From fc7a79b808eddd2b64bcda6d088f316f6e47a244 Mon Sep 17 00:00:00 2001
+From da6355f3035f70c6bd422ec22e8dfe8ee35867c5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fc7a79b808eddd2b64bcda6d088f316f6e47a244 ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -18 +18 @@
-index 7fa9e1bf9..3cf2c1bfb 100644
+index af5e844b3..d93cb00d4 100644
@@ -21 +21 @@
-@@ -1212,9 +1212,7 @@ i40e_parse_latest_vec_handler(__rte_unused const char *key,
+@@ -1210,9 +1210,7 @@ i40e_parse_latest_vec_handler(__rte_unused const char *key,
@@ -32 +32 @@
-@@ -10844,6 +10842,5 @@ i40e_start_timecounters(struct rte_eth_dev *dev)
+@@ -10828,6 +10826,5 @@ i40e_start_timecounters(struct rte_eth_dev *dev)
@@ -40 +40 @@
-@@ -10897,6 +10894,5 @@ static int
+@@ -10881,6 +10878,5 @@ static int
@@ -48 +48 @@
-@@ -10911,6 +10907,5 @@ i40e_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
+@@ -10895,6 +10891,5 @@ i40e_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
@@ -56 +56 @@
-@@ -10928,6 +10923,5 @@ i40e_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
+@@ -10912,6 +10907,5 @@ i40e_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
@@ -64 +64 @@
-@@ -11005,7 +10999,5 @@ i40e_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
+@@ -10989,7 +10983,5 @@ i40e_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
@@ -73 +73 @@
-@@ -11029,7 +11021,5 @@ i40e_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
+@@ -11013,7 +11005,5 @@ i40e_timesync_read_tx_timestamp(struct rte_eth_dev *dev,

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

* [dpdk-stable] patch 'net/ixgbe: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (8 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/mlx5: " Kevin Traynor
                   ` (49 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/4b30431215b8121b702403dd83c1c1882b412ded

Thanks.

Kevin Traynor

---
From 4b30431215b8121b702403dd83c1c1882b412ded Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:15:00 -0700
Subject: [PATCH] net/ixgbe: remove unnecessary cast

[ upstream commit 07dcd2378862140daa1662d4d2de1880c0625f64 ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 33 +++++++++++---------------------
 drivers/net/ixgbe/ixgbe_rxtx.c   | 14 +++++---------
 2 files changed, 16 insertions(+), 31 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 6341c1a3e..eafad30e4 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2400,6 +2400,5 @@ ixgbe_dev_configure(struct rte_eth_dev *dev)
 	struct ixgbe_interrupt *intr =
 		IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 	int ret;
 
@@ -2797,6 +2796,5 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
 {
 	struct rte_eth_link link;
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -4790,6 +4788,5 @@ ixgbe_dev_rss_reta_update(struct rte_eth_dev *dev,
 	uint32_t reta, r;
 	uint16_t idx, shift;
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint32_t reta_reg;
@@ -5024,6 +5021,5 @@ ixgbevf_dev_configure(struct rte_eth_dev *dev)
 {
 	struct rte_eth_conf *conf = &dev->data->dev_conf;
-	struct ixgbe_adapter *adapter =
-			(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 
 	PMD_INIT_LOG(DEBUG, "Configured Virtual Function port id: %d",
@@ -5157,6 +5153,5 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
 {
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
@@ -6913,6 +6908,5 @@ ixgbe_start_timecounters(struct rte_eth_dev *dev)
 {
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 	struct rte_eth_link link;
 	uint32_t incval = 0;
@@ -6982,6 +6976,5 @@ static int
 ixgbe_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)
 {
-	struct ixgbe_adapter *adapter =
-			(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 
 	adapter->systime_tc.nsec += delta;
@@ -6996,6 +6989,5 @@ ixgbe_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
 {
 	uint64_t ns;
-	struct ixgbe_adapter *adapter =
-			(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 
 	ns = rte_timespec_to_ns(ts);
@@ -7012,6 +7004,5 @@ ixgbe_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
 {
 	uint64_t ns, systime_cycles;
-	struct ixgbe_adapter *adapter =
-			(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 
 	systime_cycles = ixgbe_read_systime_cyclecounter(dev);
@@ -7094,6 +7085,5 @@ ixgbe_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
 {
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 	uint32_t tsync_rxctl;
 	uint64_t rx_tstamp_cycles;
@@ -7116,6 +7106,5 @@ ixgbe_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
 {
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 	uint32_t tsync_txctl;
 	uint64_t tx_tstamp_cycles;
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index 55740e75b..fd2d64ac6 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -2917,6 +2917,5 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_dev *dev,
 	struct ixgbe_hw     *hw;
 	uint16_t len;
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 	uint64_t offloads;
 
@@ -3188,6 +3187,5 @@ ixgbe_dev_clear_queues(struct rte_eth_dev *dev)
 {
 	unsigned i;
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 
 	PMD_INIT_FUNC_TRACE();
@@ -3443,5 +3441,5 @@ ixgbe_rss_configure(struct rte_eth_dev *dev)
 
 	PMD_INIT_FUNC_TRACE();
-	adapter = (struct ixgbe_adapter *)dev->data->dev_private;
+	adapter = dev->data->dev_private;
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
@@ -4587,6 +4585,5 @@ ixgbe_set_rx_function(struct rte_eth_dev *dev)
 {
 	uint16_t i, rx_using_sse;
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 
 	/*
@@ -5236,6 +5233,5 @@ ixgbe_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
 	struct ixgbe_hw     *hw;
-	struct ixgbe_adapter *adapter =
-		(struct ixgbe_adapter *)dev->data->dev_private;
+	struct ixgbe_adapter *adapter = dev->data->dev_private;
 	struct ixgbe_rx_queue *rxq;
 	uint32_t rxdctl;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.663024754 +0100
+++ 0011-net-ixgbe-remove-unnecessary-cast.patch	2019-06-24 16:18:54.981432404 +0100
@@ -1 +1 @@
-From 07dcd2378862140daa1662d4d2de1880c0625f64 Mon Sep 17 00:00:00 2001
+From 4b30431215b8121b702403dd83c1c1882b412ded Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 07dcd2378862140daa1662d4d2de1880c0625f64 ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -19 +19 @@
-index 3636b500d..12d0405d3 100644
+index 6341c1a3e..eafad30e4 100644
@@ -22 +22 @@
-@@ -2409,6 +2409,5 @@ ixgbe_dev_configure(struct rte_eth_dev *dev)
+@@ -2400,6 +2400,5 @@ ixgbe_dev_configure(struct rte_eth_dev *dev)
@@ -30 +30 @@
-@@ -2818,6 +2817,5 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -2797,6 +2796,5 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
@@ -38 +38 @@
-@@ -4816,6 +4814,5 @@ ixgbe_dev_rss_reta_update(struct rte_eth_dev *dev,
+@@ -4790,6 +4788,5 @@ ixgbe_dev_rss_reta_update(struct rte_eth_dev *dev,
@@ -46 +46 @@
-@@ -5050,6 +5047,5 @@ ixgbevf_dev_configure(struct rte_eth_dev *dev)
+@@ -5024,6 +5021,5 @@ ixgbevf_dev_configure(struct rte_eth_dev *dev)
@@ -54 +54 @@
-@@ -5183,6 +5179,5 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
+@@ -5157,6 +5153,5 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
@@ -62 +62 @@
-@@ -6946,6 +6941,5 @@ ixgbe_start_timecounters(struct rte_eth_dev *dev)
+@@ -6913,6 +6908,5 @@ ixgbe_start_timecounters(struct rte_eth_dev *dev)
@@ -70 +70 @@
-@@ -7015,6 +7009,5 @@ static int
+@@ -6982,6 +6976,5 @@ static int
@@ -78 +78 @@
-@@ -7029,6 +7022,5 @@ ixgbe_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
+@@ -6996,6 +6989,5 @@ ixgbe_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
@@ -86 +86 @@
-@@ -7045,6 +7037,5 @@ ixgbe_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
+@@ -7012,6 +7004,5 @@ ixgbe_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
@@ -94 +94 @@
-@@ -7127,6 +7118,5 @@ ixgbe_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
+@@ -7094,6 +7085,5 @@ ixgbe_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
@@ -102 +102 @@
-@@ -7149,6 +7139,5 @@ ixgbe_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
+@@ -7116,6 +7106,5 @@ ixgbe_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
@@ -111 +111 @@
-index 4be7f72ab..a8ce561e2 100644
+index 55740e75b..fd2d64ac6 100644
@@ -114 +114 @@
-@@ -2920,6 +2920,5 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -2917,6 +2917,5 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_dev *dev,
@@ -122 +122 @@
-@@ -3222,6 +3221,5 @@ ixgbe_dev_clear_queues(struct rte_eth_dev *dev)
+@@ -3188,6 +3187,5 @@ ixgbe_dev_clear_queues(struct rte_eth_dev *dev)
@@ -128 +127,0 @@
- 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -130 +129,2 @@
-@@ -3486,5 +3484,5 @@ ixgbe_rss_configure(struct rte_eth_dev *dev)
+ 	PMD_INIT_FUNC_TRACE();
+@@ -3443,5 +3441,5 @@ ixgbe_rss_configure(struct rte_eth_dev *dev)
@@ -137 +137 @@
-@@ -4631,6 +4629,5 @@ ixgbe_set_rx_function(struct rte_eth_dev *dev)
+@@ -4587,6 +4585,5 @@ ixgbe_set_rx_function(struct rte_eth_dev *dev)
@@ -145 +145 @@
-@@ -5310,6 +5307,5 @@ ixgbe_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
+@@ -5236,6 +5233,5 @@ ixgbe_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)

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

* [dpdk-stable] patch 'net/mlx5: remove unnecessary cast' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (9 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: remove useless check on mempool' " Kevin Traynor
                   ` (48 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/a5d1ee7eb29caf6bbd4c3fbf081bd35a61e9e344

Thanks.

Kevin Traynor

---
From a5d1ee7eb29caf6bbd4c3fbf081bd35a61e9e344 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 29 May 2019 12:15:01 -0700
Subject: [PATCH] net/mlx5: remove unnecessary cast

[ upstream commit d812a3c21edaa48c6d5d43aa6d1ce95bd972f3fe ]

The device private pointer (dev_private) is of type void *
therefore no cast is necessary in C.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/mlx5/mlx5_flow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 222cd81d0..4918bb5ee 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -2131,5 +2131,5 @@ mlx5_flow_create(struct rte_eth_dev *dev,
 		 struct rte_flow_error *error)
 {
-	struct mlx5_priv *priv = (struct mlx5_priv *)dev->data->dev_private;
+	struct mlx5_priv *priv = dev->data->dev_private;
 
 	return flow_list_create(dev, &priv->flows,
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.723937921 +0100
+++ 0012-net-mlx5-remove-unnecessary-cast.patch	2019-06-24 16:18:54.984432333 +0100
@@ -1 +1 @@
-From d812a3c21edaa48c6d5d43aa6d1ce95bd972f3fe Mon Sep 17 00:00:00 2001
+From a5d1ee7eb29caf6bbd4c3fbf081bd35a61e9e344 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d812a3c21edaa48c6d5d43aa6d1ce95bd972f3fe ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -18 +18 @@
-index 98870184d..c03eb4c37 100644
+index 222cd81d0..4918bb5ee 100644
@@ -21 +21 @@
-@@ -2157,5 +2157,5 @@ mlx5_flow_create(struct rte_eth_dev *dev,
+@@ -2131,5 +2131,5 @@ mlx5_flow_create(struct rte_eth_dev *dev,

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

* [dpdk-stable] patch 'net/virtio: remove useless check on mempool' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (10 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/mlx5: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: fix in-order Rx with segmented packet' " Kevin Traynor
                   ` (47 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: David Marchand; +Cc: Jens Freimann, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/7bdd00ecf5e811ea56bd7a6824329e2d6bacff59

Thanks.

Kevin Traynor

---
From 7bdd00ecf5e811ea56bd7a6824329e2d6bacff59 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 9 May 2019 10:03:48 +0200
Subject: [PATCH] net/virtio: remove useless check on mempool

[ upstream commit 711b07ce6e2d6b2ac674fad909b5e2f7249bc7a3 ]

This .rx_queue_setup devop is called after ethdev already dereferenced
the mempool pointer.
No need to check and we can remove this rte_exit.

Fixes: 48cec290a3d2 ("net/virtio: move queue configure code to proper place")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_rxtx.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index 7f7562ddc..98282dcff 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -574,9 +574,4 @@ virtio_dev_rx_queue_setup(struct rte_eth_dev *dev,
 	rxvq->queue_id = queue_idx;
 	rxvq->mpool = mp;
-	if (rxvq->mpool == NULL) {
-		rte_exit(EXIT_FAILURE,
-			"Cannot allocate mbufs for rx virtqueue");
-	}
-
 	dev->data->rx_queues[queue_idx] = rxvq;
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.772438092 +0100
+++ 0013-net-virtio-remove-useless-check-on-mempool.patch	2019-06-24 16:18:54.985432309 +0100
@@ -1 +1 @@
-From 711b07ce6e2d6b2ac674fad909b5e2f7249bc7a3 Mon Sep 17 00:00:00 2001
+From 7bdd00ecf5e811ea56bd7a6824329e2d6bacff59 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 711b07ce6e2d6b2ac674fad909b5e2f7249bc7a3 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 1de28540c..4333c10a9 100644
+index 7f7562ddc..98282dcff 100644
@@ -24 +25 @@
-@@ -891,9 +891,4 @@ virtio_dev_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -574,9 +574,4 @@ virtio_dev_rx_queue_setup(struct rte_eth_dev *dev,

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

* [dpdk-stable] patch 'net/virtio: fix in-order Rx with segmented packet' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (11 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: remove useless check on mempool' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix endianness in ring macros' " Kevin Traynor
                   ` (46 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Maxime Coquelin
  Cc: Yaroslav Brustinov, David Marchand, Tiwei Bie, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/52bc0e022a1fd76374d970f1e5d2b4a5237b450b

Thanks.

Kevin Traynor

---
From 52bc0e022a1fd76374d970f1e5d2b4a5237b450b Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Wed, 5 Jun 2019 12:00:36 +0200
Subject: [PATCH] net/virtio: fix in-order Rx with segmented packet

[ upstream commit 61d0bec3ba28c11dbc2c53390ef9ed9d5807a788 ]

After having dequeued a burst of descriptors, there may be a
need to dequeue a few more if the last packet was segmented
and not complete. When it happens, the extra segments were
not properly attached to the mbuf chain, and so were lost.

Also, head segment data_len field is wrongly summed with
the length of all the segments of the chain.

This patch fixes both the mbuf chaining and head segment's
data_len field.

Fixes: e5f456a98d3c ("net/virtio: support in-order Rx and Tx")

Reported-by: Yaroslav Brustinov <ybrustin@cisco.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_rxtx.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index 98282dcff..f8311b6e2 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -985,5 +985,5 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,
 	struct virtio_hw *hw = vq->hw;
 	struct rte_mbuf *rxm;
-	struct rte_mbuf *prev;
+	struct rte_mbuf *prev = NULL;
 	uint16_t nb_used, num, nb_rx;
 	uint32_t len[VIRTIO_MBUF_BURST_SZ];
@@ -1073,5 +1073,4 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,
 
 			rx_pkts[nb_rx]->pkt_len += (uint32_t)(len[i]);
-			rx_pkts[nb_rx]->data_len += (uint16_t)(len[i]);
 
 			if (prev)
@@ -1093,5 +1092,4 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,
 					VIRTIO_MBUF_BURST_SZ);
 
-		prev = rcv_pkts[nb_rx];
 		if (likely(VIRTQUEUE_NUSED(vq) >= rcv_cnt)) {
 			virtio_rmb();
@@ -1110,5 +1108,4 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,
 				prev = rxm;
 				rx_pkts[nb_rx]->pkt_len += len[extra_idx];
-				rx_pkts[nb_rx]->data_len += len[extra_idx];
 				extra_idx += 1;
 			};
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.822490456 +0100
+++ 0014-net-virtio-fix-in-order-Rx-with-segmented-packet.patch	2019-06-24 16:18:54.986432286 +0100
@@ -1 +1 @@
-From 61d0bec3ba28c11dbc2c53390ef9ed9d5807a788 Mon Sep 17 00:00:00 2001
+From 52bc0e022a1fd76374d970f1e5d2b4a5237b450b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 61d0bec3ba28c11dbc2c53390ef9ed9d5807a788 ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -29 +30 @@
-index 4333c10a9..62d5a4174 100644
+index 98282dcff..f8311b6e2 100644
@@ -32 +33 @@
-@@ -1420,5 +1420,5 @@ virtio_recv_pkts_inorder(void *rx_queue,
+@@ -985,5 +985,5 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,
@@ -39 +40 @@
-@@ -1512,5 +1512,4 @@ virtio_recv_pkts_inorder(void *rx_queue,
+@@ -1073,5 +1073,4 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,
@@ -45 +46 @@
-@@ -1532,5 +1531,4 @@ virtio_recv_pkts_inorder(void *rx_queue,
+@@ -1093,5 +1092,4 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,
@@ -50,2 +51,2 @@
- 			virtio_rmb(hw->weak_barriers);
-@@ -1549,5 +1547,4 @@ virtio_recv_pkts_inorder(void *rx_queue,
+ 			virtio_rmb();
+@@ -1110,5 +1108,4 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,

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

* [dpdk-stable] patch 'net/bnxt: fix endianness in ring macros' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (12 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: fix in-order Rx with segmented packet' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix ring type macro name' " Kevin Traynor
                   ` (45 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Lance Richardson; +Cc: Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/ae939cf79e5c92f08eb7b4f04b3388da06159e36

Thanks.

Kevin Traynor

---
From ae939cf79e5c92f08eb7b4f04b3388da06159e36 Mon Sep 17 00:00:00 2001
From: Lance Richardson <lance.richardson@broadcom.com>
Date: Sun, 2 Jun 2019 13:42:36 -0400
Subject: [PATCH] net/bnxt: fix endianness in ring macros

[ upstream commit 3858965c3a266c2d9350402cf4f2f420de686a62 ]

Descriptor fields in CP ring are in little-endian form, convert
to CPU endian before performing arithmetic operations.

Also use more general comparison when checking for ring
index wrap.

Fixes: f2a768d4d186 ("net/bnxt: add completion ring")

Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_cpr.h | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_cpr.h b/drivers/net/bnxt/bnxt_cpr.h
index c7af56983..ee5ca820e 100644
--- a/drivers/net/bnxt/bnxt_cpr.h
+++ b/drivers/net/bnxt/bnxt_cpr.h
@@ -11,9 +11,10 @@
 
 #define CMP_VALID(cmp, raw_cons, ring)					\
-	(!!(((struct cmpl_base *)(cmp))->info3_v & CMPL_BASE_V) ==	\
-	 !((raw_cons) & ((ring)->ring_size)))
+	(!!(rte_le_to_cpu_32(((struct cmpl_base *)(cmp))->info3_v) &	\
+	    CMPL_BASE_V) == !((raw_cons) & ((ring)->ring_size)))
 
 #define CMPL_VALID(cmp, v)						\
-	(!!(((struct cmpl_base *)(cmp))->info3_v & CMPL_BASE_V) == !(v))
+	(!!(rte_le_to_cpu_32(((struct cmpl_base *)(cmp))->info3_v) &	\
+	    CMPL_BASE_V) == !(v))
 
 #define CMP_TYPE(cmp)						\
@@ -32,5 +33,5 @@
 #define NEXT_CMPL(cpr, idx, v, inc)	do { \
 	(idx) += (inc); \
-	if (unlikely((idx) == (cpr)->cp_ring_struct->ring_size)) { \
+	if (unlikely((idx) >= (cpr)->cp_ring_struct->ring_size)) { \
 		(v) = !(v); \
 		(idx) = 0; \
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.869939892 +0100
+++ 0015-net-bnxt-fix-endianness-in-ring-macros.patch	2019-06-24 16:18:54.987432262 +0100
@@ -1 +1 @@
-From 3858965c3a266c2d9350402cf4f2f420de686a62 Mon Sep 17 00:00:00 2001
+From ae939cf79e5c92f08eb7b4f04b3388da06159e36 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3858965c3a266c2d9350402cf4f2f420de686a62 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org

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

* [dpdk-stable] patch 'net/bnxt: fix ring type macro name' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (13 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix endianness in ring macros' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix variable width in endian conversion' " Kevin Traynor
                   ` (44 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Lance Richardson; +Cc: Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/51a73def79f0be35bd82f0cbc36abb3aa0e67006

Thanks.

Kevin Traynor

---
From 51a73def79f0be35bd82f0cbc36abb3aa0e67006 Mon Sep 17 00:00:00 2001
From: Lance Richardson <lance.richardson@broadcom.com>
Date: Sun, 2 Jun 2019 13:42:37 -0400
Subject: [PATCH] net/bnxt: fix ring type macro name

[ upstream commit 1f91ae985753f7f5e4170ff2f2e0b1d47d1aa5dd ]

Use consistent macro names for ring type values. (There is no
functional change, the "alloc" and "free" values are identical.)

Fixes: 6371b91fb66d ("net/bnxt: add ring alloc/free")

Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 55b5e9720..5a08e9094 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1137,15 +1137,15 @@ int bnxt_hwrm_ring_alloc(struct bnxt *bp,
 			rc = rte_le_to_cpu_16(resp->error_code);
 		switch (ring_type) {
-		case HWRM_RING_FREE_INPUT_RING_TYPE_L2_CMPL:
+		case HWRM_RING_ALLOC_INPUT_RING_TYPE_L2_CMPL:
 			PMD_DRV_LOG(ERR,
 				"hwrm_ring_alloc cp failed. rc:%d\n", rc);
 			HWRM_UNLOCK();
 			return rc;
-		case HWRM_RING_FREE_INPUT_RING_TYPE_RX:
+		case HWRM_RING_ALLOC_INPUT_RING_TYPE_RX:
 			PMD_DRV_LOG(ERR,
 				"hwrm_ring_alloc rx failed. rc:%d\n", rc);
 			HWRM_UNLOCK();
 			return rc;
-		case HWRM_RING_FREE_INPUT_RING_TYPE_TX:
+		case HWRM_RING_ALLOC_INPUT_RING_TYPE_TX:
 			PMD_DRV_LOG(ERR,
 				"hwrm_ring_alloc tx failed. rc:%d\n", rc);
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.919361600 +0100
+++ 0016-net-bnxt-fix-ring-type-macro-name.patch	2019-06-24 16:18:54.990432191 +0100
@@ -1 +1 @@
-From 1f91ae985753f7f5e4170ff2f2e0b1d47d1aa5dd Mon Sep 17 00:00:00 2001
+From 51a73def79f0be35bd82f0cbc36abb3aa0e67006 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1f91ae985753f7f5e4170ff2f2e0b1d47d1aa5dd ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 0c6af1622..8db18ea61 100644
+index 55b5e9720..5a08e9094 100644

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

* [dpdk-stable] patch 'net/bnxt: fix variable width in endian conversion' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (14 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix ring type macro name' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/failsafe: fix reported device info' " Kevin Traynor
                   ` (43 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Lance Richardson; +Cc: Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/6a3cdf2ebd007ec13e3adb51ccdeafe314e15cb5

Thanks.

Kevin Traynor

---
From 6a3cdf2ebd007ec13e3adb51ccdeafe314e15cb5 Mon Sep 17 00:00:00 2001
From: Lance Richardson <lance.richardson@broadcom.com>
Date: Sun, 2 Jun 2019 13:42:38 -0400
Subject: [PATCH] net/bnxt: fix variable width in endian conversion

[ upstream commit 26f568cccee35980aab449c119ed8cb3bdfbf4e6 ]

Use 32-bit conversion width when converting to 32-bit values.

Fixes: 6371b91fb66d ("net/bnxt: add ring alloc/free")

Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 5a08e9094..e3aa87f45 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1110,5 +1110,5 @@ int bnxt_hwrm_ring_alloc(struct bnxt *bp,
 		req.ring_type = ring_type;
 		req.cmpl_ring_id = rte_cpu_to_le_16(cmpl_ring_id);
-		req.stat_ctx_id = rte_cpu_to_le_16(stats_ctx_id);
+		req.stat_ctx_id = rte_cpu_to_le_32(stats_ctx_id);
 		if (stats_ctx_id != INVALID_STATS_CTX_ID)
 			enables |=
@@ -1260,5 +1260,5 @@ int bnxt_hwrm_stat_clear(struct bnxt *bp, struct bnxt_cp_ring_info *cpr)
 	HWRM_PREP(req, STAT_CTX_CLR_STATS, BNXT_USE_CHIMP_MB);
 
-	req.stat_ctx_id = rte_cpu_to_le_16(cpr->hw_stats_ctx_id);
+	req.stat_ctx_id = rte_cpu_to_le_32(cpr->hw_stats_ctx_id);
 
 	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
@@ -1288,5 +1288,5 @@ int bnxt_hwrm_stat_ctx_alloc(struct bnxt *bp, struct bnxt_cp_ring_info *cpr,
 	HWRM_CHECK_RESULT();
 
-	cpr->hw_stats_ctx_id = rte_le_to_cpu_16(resp->stat_ctx_id);
+	cpr->hw_stats_ctx_id = rte_le_to_cpu_32(resp->stat_ctx_id);
 
 	HWRM_UNLOCK();
@@ -1304,5 +1304,5 @@ int bnxt_hwrm_stat_ctx_free(struct bnxt *bp, struct bnxt_cp_ring_info *cpr,
 	HWRM_PREP(req, STAT_CTX_FREE, BNXT_USE_CHIMP_MB);
 
-	req.stat_ctx_id = rte_cpu_to_le_16(cpr->hw_stats_ctx_id);
+	req.stat_ctx_id = rte_cpu_to_le_32(cpr->hw_stats_ctx_id);
 
 	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:55.968282561 +0100
+++ 0017-net-bnxt-fix-variable-width-in-endian-conversion.patch	2019-06-24 16:18:54.993432120 +0100
@@ -1 +1 @@
-From 26f568cccee35980aab449c119ed8cb3bdfbf4e6 Mon Sep 17 00:00:00 2001
+From 6a3cdf2ebd007ec13e3adb51ccdeafe314e15cb5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 26f568cccee35980aab449c119ed8cb3bdfbf4e6 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 8db18ea61..e88719d06 100644
+index 5a08e9094..e3aa87f45 100644

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

* [dpdk-stable] patch 'net/failsafe: fix reported device info' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (15 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix variable width in endian conversion' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ena: fix assigning NUMA node to IO queue' " Kevin Traynor
                   ` (42 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Gaetan Rivet, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/a8cce41e84e381ae46c3955c7500049b1b9f1cb9

Thanks.

Kevin Traynor

---
From a8cce41e84e381ae46c3955c7500049b1b9f1cb9 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <sthemmin@microsoft.com>
Date: Wed, 15 May 2019 20:53:10 -0700
Subject: [PATCH] net/failsafe: fix reported device info

[ upstream commit 4586be3743d4c49987973e2025b34abc1e85a377 ]

The failsafe driver device info had several issues in the
info it reported in dev_info_get:
  - it cleared dev_info->device set in rte_eth_dev_info_get
  - many fields (for example max_rx_queue) should be the minimum
    of all sub devices
  - it reported tx capa for the active transmit device, but
    the device may change.

There was enough messed up that ended up reworking the info_get
handler. There is no need to save current values or have a
template for defaults.

Fixes: 4e31ee26ed51 ("net/failsafe: report actual device capabilities")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
 drivers/net/failsafe/failsafe_ops.c     | 217 ++++++++++++------------
 drivers/net/failsafe/failsafe_private.h |   1 -
 2 files changed, 108 insertions(+), 110 deletions(-)

diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
index 7f8bcd4c6..a63e4edc5 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -18,78 +18,4 @@
 #include "failsafe_private.h"
 
-static struct rte_eth_dev_info default_infos = {
-	/* Max possible number of elements */
-	.max_rx_pktlen = UINT32_MAX,
-	.max_rx_queues = RTE_MAX_QUEUES_PER_PORT,
-	.max_tx_queues = RTE_MAX_QUEUES_PER_PORT,
-	.max_mac_addrs = FAILSAFE_MAX_ETHADDR,
-	.max_hash_mac_addrs = UINT32_MAX,
-	.max_vfs = UINT16_MAX,
-	.max_vmdq_pools = UINT16_MAX,
-	.rx_desc_lim = {
-		.nb_max = UINT16_MAX,
-		.nb_min = 0,
-		.nb_align = 1,
-		.nb_seg_max = UINT16_MAX,
-		.nb_mtu_seg_max = UINT16_MAX,
-	},
-	.tx_desc_lim = {
-		.nb_max = UINT16_MAX,
-		.nb_min = 0,
-		.nb_align = 1,
-		.nb_seg_max = UINT16_MAX,
-		.nb_mtu_seg_max = UINT16_MAX,
-	},
-	/*
-	 * Set of capabilities that can be verified upon
-	 * configuring a sub-device.
-	 */
-	.rx_offload_capa =
-		DEV_RX_OFFLOAD_VLAN_STRIP |
-		DEV_RX_OFFLOAD_IPV4_CKSUM |
-		DEV_RX_OFFLOAD_UDP_CKSUM |
-		DEV_RX_OFFLOAD_TCP_CKSUM |
-		DEV_RX_OFFLOAD_TCP_LRO |
-		DEV_RX_OFFLOAD_QINQ_STRIP |
-		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
-		DEV_RX_OFFLOAD_MACSEC_STRIP |
-		DEV_RX_OFFLOAD_HEADER_SPLIT |
-		DEV_RX_OFFLOAD_VLAN_FILTER |
-		DEV_RX_OFFLOAD_VLAN_EXTEND |
-		DEV_RX_OFFLOAD_JUMBO_FRAME |
-		DEV_RX_OFFLOAD_SCATTER |
-		DEV_RX_OFFLOAD_TIMESTAMP |
-		DEV_RX_OFFLOAD_SECURITY,
-	.rx_queue_offload_capa =
-		DEV_RX_OFFLOAD_VLAN_STRIP |
-		DEV_RX_OFFLOAD_IPV4_CKSUM |
-		DEV_RX_OFFLOAD_UDP_CKSUM |
-		DEV_RX_OFFLOAD_TCP_CKSUM |
-		DEV_RX_OFFLOAD_TCP_LRO |
-		DEV_RX_OFFLOAD_QINQ_STRIP |
-		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
-		DEV_RX_OFFLOAD_MACSEC_STRIP |
-		DEV_RX_OFFLOAD_HEADER_SPLIT |
-		DEV_RX_OFFLOAD_VLAN_FILTER |
-		DEV_RX_OFFLOAD_VLAN_EXTEND |
-		DEV_RX_OFFLOAD_JUMBO_FRAME |
-		DEV_RX_OFFLOAD_SCATTER |
-		DEV_RX_OFFLOAD_TIMESTAMP |
-		DEV_RX_OFFLOAD_SECURITY,
-	.tx_offload_capa =
-		DEV_TX_OFFLOAD_MULTI_SEGS |
-		DEV_TX_OFFLOAD_IPV4_CKSUM |
-		DEV_TX_OFFLOAD_UDP_CKSUM |
-		DEV_TX_OFFLOAD_TCP_CKSUM |
-		DEV_TX_OFFLOAD_TCP_TSO,
-	.flow_type_rss_offloads =
-			ETH_RSS_IP |
-			ETH_RSS_UDP |
-			ETH_RSS_TCP,
-	.dev_capa =
-		RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
-		RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP,
-};
-
 static int
 fs_dev_configure(struct rte_eth_dev *dev)
@@ -864,4 +790,44 @@ fs_stats_reset(struct rte_eth_dev *dev)
 }
 
+static void
+fs_dev_merge_desc_lim(struct rte_eth_desc_lim *to,
+		      const struct rte_eth_desc_lim *from)
+{
+	to->nb_max = RTE_MIN(to->nb_max, from->nb_max);
+	to->nb_min = RTE_MAX(to->nb_min, from->nb_min);
+	to->nb_align = RTE_MAX(to->nb_align, from->nb_align);
+
+	to->nb_seg_max = RTE_MIN(to->nb_seg_max, from->nb_seg_max);
+	to->nb_mtu_seg_max = RTE_MIN(to->nb_mtu_seg_max, from->nb_mtu_seg_max);
+}
+
+/*
+ * Merge the information from sub-devices.
+ *
+ * The reported values must be the common subset of all sub devices
+ */
+static void
+fs_dev_merge_info(struct rte_eth_dev_info *info,
+		  const struct rte_eth_dev_info *sinfo)
+{
+	info->max_rx_pktlen = RTE_MIN(info->max_rx_pktlen, sinfo->max_rx_pktlen);
+	info->max_rx_queues = RTE_MIN(info->max_rx_queues, sinfo->max_rx_queues);
+	info->max_tx_queues = RTE_MIN(info->max_tx_queues, sinfo->max_tx_queues);
+	info->max_mac_addrs = RTE_MIN(info->max_mac_addrs, sinfo->max_mac_addrs);
+	info->max_hash_mac_addrs = RTE_MIN(info->max_hash_mac_addrs,
+					sinfo->max_hash_mac_addrs);
+	info->max_vmdq_pools = RTE_MIN(info->max_vmdq_pools, sinfo->max_vmdq_pools);
+	info->max_vfs = RTE_MIN(info->max_vfs, sinfo->max_vfs);
+
+	fs_dev_merge_desc_lim(&info->rx_desc_lim, &sinfo->rx_desc_lim);
+	fs_dev_merge_desc_lim(&info->tx_desc_lim, &sinfo->tx_desc_lim);
+
+	info->rx_offload_capa &= sinfo->rx_offload_capa;
+	info->tx_offload_capa &= sinfo->tx_offload_capa;
+	info->rx_queue_offload_capa &= sinfo->rx_queue_offload_capa;
+	info->tx_queue_offload_capa &= sinfo->tx_queue_offload_capa;
+	info->flow_type_rss_offloads &= sinfo->flow_type_rss_offloads;
+}
+
 /**
  * Fail-safe dev_infos_get rules:
@@ -902,41 +868,74 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
 	uint8_t i;
 
-	sdev = TX_SUBDEV(dev);
-	if (sdev == NULL) {
-		DEBUG("No probed device, using default infos");
-		rte_memcpy(&PRIV(dev)->infos, &default_infos,
-			   sizeof(default_infos));
-	} else {
-		uint64_t rx_offload_capa;
-		uint64_t rxq_offload_capa;
-		uint64_t rss_hf_offload_capa;
-		uint64_t dev_capa;
+	/* Use maximum upper bounds by default */
+	infos->max_rx_pktlen = UINT32_MAX;
+	infos->max_rx_queues = RTE_MAX_QUEUES_PER_PORT;
+	infos->max_tx_queues = RTE_MAX_QUEUES_PER_PORT;
+	infos->max_mac_addrs = FAILSAFE_MAX_ETHADDR;
+	infos->max_hash_mac_addrs = UINT32_MAX;
+	infos->max_vfs = UINT16_MAX;
+	infos->max_vmdq_pools = UINT16_MAX;
 
-		rx_offload_capa = default_infos.rx_offload_capa;
-		rxq_offload_capa = default_infos.rx_queue_offload_capa;
-		rss_hf_offload_capa = default_infos.flow_type_rss_offloads;
-		dev_capa = default_infos.dev_capa;
-		FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_PROBED) {
-			rte_eth_dev_info_get(PORT_ID(sdev),
-					&PRIV(dev)->infos);
-			rx_offload_capa &= PRIV(dev)->infos.rx_offload_capa;
-			rxq_offload_capa &=
-					PRIV(dev)->infos.rx_queue_offload_capa;
-			rss_hf_offload_capa &=
-					PRIV(dev)->infos.flow_type_rss_offloads;
-			dev_capa &= PRIV(dev)->infos.dev_capa;
-		}
-		sdev = TX_SUBDEV(dev);
-		rte_eth_dev_info_get(PORT_ID(sdev), &PRIV(dev)->infos);
-		PRIV(dev)->infos.rx_offload_capa = rx_offload_capa;
-		PRIV(dev)->infos.rx_queue_offload_capa = rxq_offload_capa;
-		PRIV(dev)->infos.flow_type_rss_offloads = rss_hf_offload_capa;
-		PRIV(dev)->infos.dev_capa = dev_capa;
-		PRIV(dev)->infos.tx_offload_capa &=
-					default_infos.tx_offload_capa;
-		PRIV(dev)->infos.tx_queue_offload_capa &=
-					default_infos.tx_queue_offload_capa;
+	/*
+	 * Set of capabilities that can be verified upon
+	 * configuring a sub-device.
+	 */
+	infos->rx_offload_capa =
+		DEV_RX_OFFLOAD_VLAN_STRIP |
+		DEV_RX_OFFLOAD_IPV4_CKSUM |
+		DEV_RX_OFFLOAD_UDP_CKSUM |
+		DEV_RX_OFFLOAD_TCP_CKSUM |
+		DEV_RX_OFFLOAD_TCP_LRO |
+		DEV_RX_OFFLOAD_QINQ_STRIP |
+		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
+		DEV_RX_OFFLOAD_MACSEC_STRIP |
+		DEV_RX_OFFLOAD_HEADER_SPLIT |
+		DEV_RX_OFFLOAD_VLAN_FILTER |
+		DEV_RX_OFFLOAD_VLAN_EXTEND |
+		DEV_RX_OFFLOAD_JUMBO_FRAME |
+		DEV_RX_OFFLOAD_SCATTER |
+		DEV_RX_OFFLOAD_TIMESTAMP |
+		DEV_RX_OFFLOAD_SECURITY;
+
+	infos->rx_queue_offload_capa =
+		DEV_RX_OFFLOAD_VLAN_STRIP |
+		DEV_RX_OFFLOAD_IPV4_CKSUM |
+		DEV_RX_OFFLOAD_UDP_CKSUM |
+		DEV_RX_OFFLOAD_TCP_CKSUM |
+		DEV_RX_OFFLOAD_TCP_LRO |
+		DEV_RX_OFFLOAD_QINQ_STRIP |
+		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
+		DEV_RX_OFFLOAD_MACSEC_STRIP |
+		DEV_RX_OFFLOAD_HEADER_SPLIT |
+		DEV_RX_OFFLOAD_VLAN_FILTER |
+		DEV_RX_OFFLOAD_VLAN_EXTEND |
+		DEV_RX_OFFLOAD_JUMBO_FRAME |
+		DEV_RX_OFFLOAD_SCATTER |
+		DEV_RX_OFFLOAD_TIMESTAMP |
+		DEV_RX_OFFLOAD_SECURITY;
+
+	infos->tx_offload_capa =
+		DEV_TX_OFFLOAD_MULTI_SEGS |
+		DEV_TX_OFFLOAD_MBUF_FAST_FREE |
+		DEV_TX_OFFLOAD_IPV4_CKSUM |
+		DEV_TX_OFFLOAD_UDP_CKSUM |
+		DEV_TX_OFFLOAD_TCP_CKSUM |
+		DEV_TX_OFFLOAD_TCP_TSO;
+
+	infos->flow_type_rss_offloads =
+		ETH_RSS_IP |
+		ETH_RSS_UDP |
+		ETH_RSS_TCP;
+	infos->dev_capa =
+		RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
+		RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP;
+
+	FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_PROBED) {
+		struct rte_eth_dev_info sub_info;
+
+		rte_eth_dev_info_get(PORT_ID(sdev), &sub_info);
+
+		fs_dev_merge_info(infos, &sub_info);
 	}
-	rte_memcpy(infos, &PRIV(dev)->infos, sizeof(*infos));
 }
 
diff --git a/drivers/net/failsafe/failsafe_private.h b/drivers/net/failsafe/failsafe_private.h
index 7e3189685..3264bff2f 100644
--- a/drivers/net/failsafe/failsafe_private.h
+++ b/drivers/net/failsafe/failsafe_private.h
@@ -150,5 +150,4 @@ struct fs_priv {
 	struct ether_addr *mcast_addrs;
 	/* current capabilities */
-	struct rte_eth_dev_info infos;
 	struct rte_eth_dev_owner my_owner; /* Unique owner. */
 	struct rte_intr_handle intr_handle; /* Port interrupt handle. */
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.019101064 +0100
+++ 0018-net-failsafe-fix-reported-device-info.patch	2019-06-24 16:18:54.994432097 +0100
@@ -1 +1 @@
-From 4586be3743d4c49987973e2025b34abc1e85a377 Mon Sep 17 00:00:00 2001
+From a8cce41e84e381ae46c3955c7500049b1b9f1cb9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4586be3743d4c49987973e2025b34abc1e85a377 ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
- drivers/net/failsafe/failsafe_ops.c     | 218 ++++++++++++------------
+ drivers/net/failsafe/failsafe_ops.c     | 217 ++++++++++++------------
@@ -26 +27 @@
- 2 files changed, 108 insertions(+), 111 deletions(-)
+ 2 files changed, 108 insertions(+), 110 deletions(-)
@@ -29 +30 @@
-index c900eccb2..96e05d4dc 100644
+index 7f8bcd4c6..a63e4edc5 100644
@@ -32 +33 @@
-@@ -18,79 +18,4 @@
+@@ -18,78 +18,4 @@
@@ -96 +96,0 @@
--		DEV_TX_OFFLOAD_MBUF_FAST_FREE |
@@ -112 +112 @@
-@@ -865,4 +790,44 @@ fs_stats_reset(struct rte_eth_dev *dev)
+@@ -864,4 +790,44 @@ fs_stats_reset(struct rte_eth_dev *dev)
@@ -157 +157 @@
-@@ -903,41 +868,74 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
+@@ -902,41 +868,74 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
@@ -268 +268 @@
-index 231b89edd..e376b35b3 100644
+index 7e3189685..3264bff2f 100644
@@ -271,2 +271,2 @@
-@@ -158,5 +158,4 @@ struct fs_priv {
- 	struct rte_ether_addr *mcast_addrs;
+@@ -150,5 +150,4 @@ struct fs_priv {
+ 	struct ether_addr *mcast_addrs;

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

* [dpdk-stable] patch 'net/ena: fix assigning NUMA node to IO queue' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (16 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/failsafe: fix reported device info' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix packet drop' " Kevin Traynor
                   ` (41 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Michal Krawczyk; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/6043b435acec7e04a274308980736e4a37829f40

Thanks.

Kevin Traynor

---
From 6043b435acec7e04a274308980736e4a37829f40 Mon Sep 17 00:00:00 2001
From: Michal Krawczyk <mk@semihalf.com>
Date: Tue, 4 Jun 2019 12:59:36 +0200
Subject: [PATCH] net/ena: fix assigning NUMA node to IO queue

[ upstream commit 4217cb0b7d2c5385f06f531af7f14b860927aba7 ]

Previous solution was using memzones in invalid way in hope to assign
IO queue to the appropriate NUMA zone.

The right way is to use socket_id from the rx/tx queue setup function
and then pass it to the IO queue.

Fixes: 3d3edc265fc8 ("net/ena: make coherent memory allocation NUMA-aware")

Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/ena/ena_ethdev.c | 25 +++++--------------------
 drivers/net/ena/ena_ethdev.h |  1 +
 2 files changed, 6 insertions(+), 20 deletions(-)

diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 82161f41c..9359d4d76 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -40,5 +40,4 @@
 #include <rte_errno.h>
 #include <rte_version.h>
-#include <rte_eal_memconfig.h>
 #include <rte_net.h>
 
@@ -282,20 +281,4 @@ static const struct eth_dev_ops ena_dev_ops = {
 };
 
-#define NUMA_NO_NODE	SOCKET_ID_ANY
-
-static inline int ena_cpu_to_node(int cpu)
-{
-	struct rte_config *config = rte_eal_get_configuration();
-	struct rte_fbarray *arr = &config->mem_config->memzones;
-	const struct rte_memzone *mz;
-
-	if (unlikely(cpu >= RTE_MAX_MEMZONE))
-		return NUMA_NO_NODE;
-
-	mz = rte_fbarray_get(arr, cpu);
-
-	return mz->socket_id;
-}
-
 static inline void ena_rx_mbuf_prepare(struct rte_mbuf *mbuf,
 				       struct ena_com_rx_ctx *ena_rx_ctx)
@@ -1072,5 +1055,5 @@ static int ena_create_io_queue(struct ena_ring *ring)
 	ctx.qid = ena_qid;
 	ctx.msix_vector = -1; /* interrupts not used */
-	ctx.numa_node = ena_cpu_to_node(ring->id);
+	ctx.numa_node = ring->numa_socket_id;
 
 	rc = ena_com_create_io_queue(ena_dev, &ctx);
@@ -1166,5 +1149,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
 			      uint16_t queue_idx,
 			      uint16_t nb_desc,
-			      __rte_unused unsigned int socket_id,
+			      unsigned int socket_id,
 			      const struct rte_eth_txconf *tx_conf)
 {
@@ -1200,4 +1183,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
 	txq->next_to_use = 0;
 	txq->ring_size = nb_desc;
+	txq->numa_socket_id = socket_id;
 
 	txq->tx_buffer_info = rte_zmalloc("txq->tx_buffer_info",
@@ -1237,5 +1221,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
 			      uint16_t queue_idx,
 			      uint16_t nb_desc,
-			      __rte_unused unsigned int socket_id,
+			      unsigned int socket_id,
 			      __rte_unused const struct rte_eth_rxconf *rx_conf,
 			      struct rte_mempool *mp)
@@ -1271,4 +1255,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
 	rxq->next_to_use = 0;
 	rxq->ring_size = nb_desc;
+	rxq->numa_socket_id = socket_id;
 	rxq->mb_pool = mp;
 
diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h
index 322e90ace..a4aba7fdf 100644
--- a/drivers/net/ena/ena_ethdev.h
+++ b/drivers/net/ena/ena_ethdev.h
@@ -106,4 +106,5 @@ struct ena_ring {
 	uint64_t offloads;
 	u16 sgl_size;
+	unsigned int numa_socket_id;
 } __rte_cache_aligned;
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.068499662 +0100
+++ 0019-net-ena-fix-assigning-NUMA-node-to-IO-queue.patch	2019-06-24 16:18:54.997432026 +0100
@@ -1 +1 @@
-From 4217cb0b7d2c5385f06f531af7f14b860927aba7 Mon Sep 17 00:00:00 2001
+From 6043b435acec7e04a274308980736e4a37829f40 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4217cb0b7d2c5385f06f531af7f14b860927aba7 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -19,2 +20,2 @@
- drivers/net/ena/ena_ethdev.h |  2 ++
- 2 files changed, 7 insertions(+), 20 deletions(-)
+ drivers/net/ena/ena_ethdev.h |  1 +
+ 2 files changed, 6 insertions(+), 20 deletions(-)
@@ -23 +24 @@
-index a42ec8c79..f58334080 100644
+index 82161f41c..9359d4d76 100644
@@ -26 +27 @@
-@@ -41,5 +41,4 @@
+@@ -40,5 +40,4 @@
@@ -32 +33 @@
-@@ -273,20 +272,4 @@ static const struct eth_dev_ops ena_dev_ops = {
+@@ -282,20 +281,4 @@ static const struct eth_dev_ops ena_dev_ops = {
@@ -53 +54 @@
-@@ -1117,5 +1100,5 @@ static int ena_create_io_queue(struct ena_ring *ring)
+@@ -1072,5 +1055,5 @@ static int ena_create_io_queue(struct ena_ring *ring)
@@ -60 +61 @@
-@@ -1214,5 +1197,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
+@@ -1166,5 +1149,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
@@ -67 +68 @@
-@@ -1251,4 +1234,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
+@@ -1200,4 +1183,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
@@ -73 +74 @@
-@@ -1298,5 +1282,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -1237,5 +1221,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
@@ -80 +81 @@
-@@ -1335,4 +1319,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -1271,4 +1255,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
@@ -87 +88 @@
-index dcc8690a5..9067e9007 100644
+index 322e90ace..a4aba7fdf 100644
@@ -90,4 +91,3 @@
-@@ -144,4 +144,6 @@ struct ena_ring {
- 		struct ena_stats_tx tx_stats;
- 	};
-+
+@@ -106,4 +106,5 @@ struct ena_ring {
+ 	uint64_t offloads;
+ 	u16 sgl_size;

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

* [dpdk-stable] patch 'net/bnx2x: fix packet drop' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (17 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ena: fix assigning NUMA node to IO queue' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix interrupt flood' " Kevin Traynor
                   ` (40 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/47f54bcc2eef1be1bbbda926d68847b4697c659a

Thanks.

Kevin Traynor

---
From 47f54bcc2eef1be1bbbda926d68847b4697c659a Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shshaikh@marvell.com>
Date: Tue, 4 Jun 2019 11:53:48 -0700
Subject: [PATCH] net/bnx2x: fix packet drop

[ upstream commit 08a6e472c3d7833ebe6cee0e1b3c601141a269ed ]

Patch "8bd31421c593 ("net/bnx2x: fix ramrod timeout")"
introduced a regression where sc->scan_fp flags is
set for unexpectedly long time. So the slow path completion
handler flow is run unnecessarily which walks over receive
descriptor ring of fast path and drops the data packets while looking
for slow path completion descriptor out of fast path ring.

This issue is seen under heavy traffic with link events happening
in background.

Fixes: 8bd31421c593 ("net/bnx2x: fix ramrod timeout")

Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/bnx2x/bnx2x.c    | 2 ++
 drivers/net/bnx2x/ecore_sp.c | 4 ----
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
index 3e705c7a1..0698b1a8a 100644
--- a/drivers/net/bnx2x/bnx2x.c
+++ b/drivers/net/bnx2x/bnx2x.c
@@ -4573,4 +4573,6 @@ static void bnx2x_handle_fp_tq(struct bnx2x_fastpath *fp)
 	}
 
+	/* Assuming we have completed slow path completion, clear the flag */
+	rte_atomic32_set(&sc->scan_fp, 0);
 	bnx2x_ack_sb(sc, fp->igu_sb_id, USTORM_ID,
 		   le16toh(fp->fp_hc_idx), IGU_INT_ENABLE, 1);
diff --git a/drivers/net/bnx2x/ecore_sp.c b/drivers/net/bnx2x/ecore_sp.c
index 43194095b..5ac22e725 100644
--- a/drivers/net/bnx2x/ecore_sp.c
+++ b/drivers/net/bnx2x/ecore_sp.c
@@ -292,8 +292,4 @@ static int ecore_state_wait(struct bnx2x_softc *sc, int state,
 
 	ECORE_MSG(sc, "waiting for state to become %d", state);
-	/* being over protective to remind bnx2x_intr_legacy() to
-	 * process RAMROD
-	 */
-	rte_atomic32_set(&sc->scan_fp, 1);
 
 	ECORE_MIGHT_SLEEP();
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.118911885 +0100
+++ 0020-net-bnx2x-fix-packet-drop.patch	2019-06-24 16:18:55.010431719 +0100
@@ -1 +1 @@
-From 08a6e472c3d7833ebe6cee0e1b3c601141a269ed Mon Sep 17 00:00:00 2001
+From 47f54bcc2eef1be1bbbda926d68847b4697c659a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 08a6e472c3d7833ebe6cee0e1b3c601141a269ed ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
-index e771e40cb..5f353a7ef 100644
+index 3e705c7a1..0698b1a8a 100644

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

* [dpdk-stable] patch 'net/bnx2x: fix interrupt flood' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (18 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix packet drop' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix memory leak' " Kevin Traynor
                   ` (39 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/a4c0a5ba78bd2763a0437c502beb98332d974c87

Thanks.

Kevin Traynor

---
From a4c0a5ba78bd2763a0437c502beb98332d974c87 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shshaikh@marvell.com>
Date: Tue, 4 Jun 2019 11:53:49 -0700
Subject: [PATCH] net/bnx2x: fix interrupt flood

[ upstream commit f0219d98defd92297c688855d25294805ec89a3d ]

PMD sets up and clears the slow path interrupt status block in dev_start
and dev_stop flow and slow path interrupt status block DMA memory for
device is allocated in dev_configure flow.

This situation creates a state where, after dev_stop is called, and if
there is a slow path interrupt from device, PMD sees the old value of
status block consumer in dev_start flow, since DMA memory for status
block belongs to old configuration and dev_start will result in
new slow path interrupt status block configuration.
And since PMD fails to ack new slow path interrupt with correct status
block consumer value, device continues to trigger interrupt causing an
interrupt flood.

Fix is to create and destroy status block DMA memory in dev_start and
dev_stop flow instead of dev_configure and dev_close flow.

Fixes: 540a211084a7 ("bnx2x: driver core")

Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/bnx2x/bnx2x.c        | 10 ++++++++++
 drivers/net/bnx2x/bnx2x_ethdev.c | 10 ----------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
index 0698b1a8a..e9f05a73a 100644
--- a/drivers/net/bnx2x/bnx2x.c
+++ b/drivers/net/bnx2x/bnx2x.c
@@ -2402,4 +2402,7 @@ static void bnx2x_free_mem(struct bnx2x_softc *sc)
 
 	bnx2x_free_ilt_lines_mem(sc);
+
+	/* free the host hardware/software hsi structures */
+	bnx2x_free_hsi_mem(sc);
 }
 
@@ -2452,4 +2455,11 @@ static int bnx2x_alloc_mem(struct bnx2x_softc *sc)
 	}
 
+	/* allocate the host hardware/software hsi structures */
+	if (bnx2x_alloc_hsi_mem(sc) != 0) {
+		PMD_DRV_LOG(ERR, sc, "bnx2x_alloc_hsi_mem was failed");
+		bnx2x_free_mem(sc);
+		return -ENXIO;
+	}
+
 	return 0;
 }
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index c628cdc0f..c23f4b1a6 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -207,11 +207,4 @@ bnx2x_dev_configure(struct rte_eth_dev *dev)
 	}
 
-	/* allocate the host hardware/software hsi structures */
-	if (bnx2x_alloc_hsi_mem(sc) != 0) {
-		PMD_DRV_LOG(ERR, sc, "bnx2x_alloc_hsi_mem was failed");
-		bnx2x_free_ilt_mem(sc);
-		return -ENXIO;
-	}
-
 	bnx2x_dev_rxtx_init_dummy(dev);
 	return 0;
@@ -294,7 +287,4 @@ bnx2x_dev_close(struct rte_eth_dev *dev)
 	memset(&(dev->data->dev_link), 0 , sizeof(struct rte_eth_link));
 
-	/* free the host hardware/software hsi structures */
-	bnx2x_free_hsi_mem(sc);
-
 	/* free ilt */
 	bnx2x_free_ilt_mem(sc);
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.183680860 +0100
+++ 0021-net-bnx2x-fix-interrupt-flood.patch	2019-06-24 16:18:55.021431459 +0100
@@ -1 +1 @@
-From f0219d98defd92297c688855d25294805ec89a3d Mon Sep 17 00:00:00 2001
+From a4c0a5ba78bd2763a0437c502beb98332d974c87 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f0219d98defd92297c688855d25294805ec89a3d ]
+
@@ -23 +24,0 @@
-Cc: stable@dpdk.org
@@ -33 +34 @@
-index 5f353a7ef..5a47fd8fe 100644
+index 0698b1a8a..e9f05a73a 100644
@@ -57 +58 @@
-index 567dc5560..11a20e210 100644
+index c628cdc0f..c23f4b1a6 100644
@@ -60 +61 @@
-@@ -208,11 +208,4 @@ bnx2x_dev_configure(struct rte_eth_dev *dev)
+@@ -207,11 +207,4 @@ bnx2x_dev_configure(struct rte_eth_dev *dev)
@@ -72 +73 @@
-@@ -295,7 +288,4 @@ bnx2x_dev_close(struct rte_eth_dev *dev)
+@@ -294,7 +287,4 @@ bnx2x_dev_close(struct rte_eth_dev *dev)

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

* [dpdk-stable] patch 'net/bnx2x: fix memory leak' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (19 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix interrupt flood' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix link state' " Kevin Traynor
                   ` (38 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/fee77da946a3536cd35d0ec94195136e21c77f53

Thanks.

Kevin Traynor

---
From fee77da946a3536cd35d0ec94195136e21c77f53 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shshaikh@marvell.com>
Date: Tue, 4 Jun 2019 11:53:50 -0700
Subject: [PATCH] net/bnx2x: fix memory leak

[ upstream commit 0cf8fdce99764e28c747027570126f965ad71eed ]

bnx2x_free_hsi_mem() does not free DMA memory.
Fix it here.

Fixes: 540a211084a7 ("bnx2x: driver core")

Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/bnx2x/bnx2x.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
index e9f05a73a..d3b260830 100644
--- a/drivers/net/bnx2x/bnx2x.c
+++ b/drivers/net/bnx2x/bnx2x.c
@@ -9019,4 +9019,5 @@ void bnx2x_free_hsi_mem(struct bnx2x_softc *sc)
 
 		memset(&fp->status_block, 0, sizeof(fp->status_block));
+		bnx2x_dma_free(&fp->sb_dma);
 	}
 
@@ -9025,4 +9026,5 @@ void bnx2x_free_hsi_mem(struct bnx2x_softc *sc)
 	/***************************/
 
+	bnx2x_dma_free(&sc->gz_buf_dma);
 	sc->gz_buf = NULL;
 
@@ -9031,4 +9033,5 @@ void bnx2x_free_hsi_mem(struct bnx2x_softc *sc)
 	/*******************/
 
+	bnx2x_dma_free(&sc->spq_dma);
 	sc->spq = NULL;
 
@@ -9037,4 +9040,5 @@ void bnx2x_free_hsi_mem(struct bnx2x_softc *sc)
 	/*************/
 
+	bnx2x_dma_free(&sc->sp_dma);
 	sc->sp = NULL;
 
@@ -9043,4 +9047,5 @@ void bnx2x_free_hsi_mem(struct bnx2x_softc *sc)
 	/***************/
 
+	bnx2x_dma_free(&sc->eq_dma);
 	sc->eq = NULL;
 
@@ -9049,4 +9054,5 @@ void bnx2x_free_hsi_mem(struct bnx2x_softc *sc)
 	/************************/
 
+	bnx2x_dma_free(&sc->def_sb_dma);
 	sc->def_sb = NULL;
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.243505633 +0100
+++ 0022-net-bnx2x-fix-memory-leak.patch	2019-06-24 16:18:55.032431200 +0100
@@ -1 +1 @@
-From 0cf8fdce99764e28c747027570126f965ad71eed Mon Sep 17 00:00:00 2001
+From fee77da946a3536cd35d0ec94195136e21c77f53 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0cf8fdce99764e28c747027570126f965ad71eed ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 5a47fd8fe..d523f4f2c 100644
+index e9f05a73a..d3b260830 100644

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

* [dpdk-stable] patch 'net/bnx2x: fix link state' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (20 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix memory leak' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix supported max Rx/Tx descriptor count' " Kevin Traynor
                   ` (37 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/882f29f8e119e874eebb03b93183136953405643

Thanks.

Kevin Traynor

---
From 882f29f8e119e874eebb03b93183136953405643 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shshaikh@marvell.com>
Date: Tue, 4 Jun 2019 11:53:51 -0700
Subject: [PATCH] net/bnx2x: fix link state

[ upstream commit 6c5b9b2aaf3945638af8acba00048b0454355d51 ]

Don't call bnx2x_link_status_update() from bnx2x_link_update().
Actual use case of bnx2x_link_status_update() is to update the link
status in shared memory between driver and MFW, and not to get the
link status from HW.

So ideally, bnx2x_link_status_update() should be called when there
is an actual link event or change in link status.

Calling bnx2x_link_status_update() from bnx2x_link_update() may
corrupt the data of link status in shared memory and result
in inconsistent state of link.

Fixes: 540a211084a7 ("bnx2x: driver core")

Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/bnx2x/bnx2x_ethdev.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index c23f4b1a6..7c440d33e 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -88,5 +88,4 @@ bnx2x_link_update(struct rte_eth_dev *dev)
 	PMD_INIT_FUNC_TRACE(sc);
 
-	bnx2x_link_status_update(sc);
 	memset(&link, 0, sizeof(link));
 	mb();
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.300466549 +0100
+++ 0023-net-bnx2x-fix-link-state.patch	2019-06-24 16:18:55.033431176 +0100
@@ -1 +1 @@
-From 6c5b9b2aaf3945638af8acba00048b0454355d51 Mon Sep 17 00:00:00 2001
+From 882f29f8e119e874eebb03b93183136953405643 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6c5b9b2aaf3945638af8acba00048b0454355d51 ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index 11a20e210..7429004de 100644
+index c23f4b1a6..7c440d33e 100644
@@ -31 +32 @@
-@@ -89,5 +89,4 @@ bnx2x_link_update(struct rte_eth_dev *dev)
+@@ -88,5 +88,4 @@ bnx2x_link_update(struct rte_eth_dev *dev)

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

* [dpdk-stable] patch 'net/bnx2x: fix supported max Rx/Tx descriptor count' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (21 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix link state' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'ethdev: fix Tx prepare documentation to use positive errno' " Kevin Traynor
                   ` (36 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/539aba06f66109a67576a280c559cce46f5a3e38

Thanks.

Kevin Traynor

---
From 539aba06f66109a67576a280c559cce46f5a3e38 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shshaikh@marvell.com>
Date: Tue, 4 Jun 2019 11:53:52 -0700
Subject: [PATCH] net/bnx2x: fix supported max Rx/Tx descriptor count

[ upstream commit 65a45ecc76bbca1c167bd034d85827666084d83a ]

Driver does not provide limit on number Rx and Tx descriptors per queue,
this may result in application configuring 64k descriptors (default set
by rte_eth_dev_info_get()) and further result in issues in PMD and HW
flows due to unsupported number.

Fixes: 540a211084a7 ("bnx2x: driver core")

Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/bnx2x/bnx2x.h        | 10 ++++++++--
 drivers/net/bnx2x/bnx2x_ethdev.c |  5 +++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h
index ef1688ff3..ceaecb031 100644
--- a/drivers/net/bnx2x/bnx2x.h
+++ b/drivers/net/bnx2x/bnx2x.h
@@ -156,4 +156,5 @@ struct bnx2x_device_type {
  */
 /* NUM_TX_PAGES must be a power of 2. */
+#define NUM_TX_PAGES		 16
 #define TOTAL_TX_BD_PER_PAGE     (BNX2X_PAGE_SIZE / sizeof(union eth_tx_bd_types)) /*  256 */
 #define USABLE_TX_BD_PER_PAGE    (TOTAL_TX_BD_PER_PAGE - 1)                      /*  255 */
@@ -162,5 +163,5 @@ struct bnx2x_device_type {
 #define USABLE_TX_BD(q)          (USABLE_TX_BD_PER_PAGE * q->nb_tx_pages)        /*  510 */
 #define MAX_TX_BD(q)             (TOTAL_TX_BD(q) - 1)                            /*  511 */
-
+#define MAX_TX_AVAIL		 (USABLE_TX_BD_PER_PAGE * NUM_TX_PAGES - 2)
 #define NEXT_TX_BD(x)                                                   \
 	((((x) & USABLE_TX_BD_PER_PAGE) ==                              \
@@ -183,5 +184,5 @@ struct bnx2x_device_type {
  * Receive Buffer Descriptor (rx_bd) definitions*
  */
-//#define NUM_RX_PAGES            1
+#define MAX_RX_PAGES            8
 #define TOTAL_RX_BD_PER_PAGE    (BNX2X_PAGE_SIZE / sizeof(struct eth_rx_bd))      /*  512 */
 #define USABLE_RX_BD_PER_PAGE   (TOTAL_RX_BD_PER_PAGE - 2)                      /*  510 */
@@ -190,4 +191,5 @@ struct bnx2x_device_type {
 #define USABLE_RX_BD(q)         (USABLE_RX_BD_PER_PAGE * q->nb_rx_pages)        /*  510 */
 #define MAX_RX_BD(q)            (TOTAL_RX_BD(q) - 1)                            /*  511 */
+#define MAX_RX_AVAIL		(USABLE_RX_BD_PER_PAGE * MAX_RX_PAGES - 2)
 #define RX_BD_NEXT_PAGE_DESC_CNT 2
 
@@ -245,4 +247,8 @@ struct bnx2x_device_type {
 	((sc)->dropless_fc ? BD_TH_HI(sc) + 128 : 128)
 
+#define MIN_RX_SIZE_NONTPA_HW	ETH_MIN_RX_CQES_WITHOUT_TPA
+#define MIN_RX_SIZE_NONTPA	(RTE_MAX((uint32_t)MIN_RX_SIZE_NONTPA_HW,\
+					(uint32_t)MIN_RX_AVAIL(sc)))
+
 /*
  * dropless fc calculations for RCQs
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index 7c440d33e..fa9d83154 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -481,4 +481,5 @@ bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct bnx2x_softc *sc = dev->data->dev_private;
+
 	dev_info->max_rx_queues  = sc->max_rx_queues;
 	dev_info->max_tx_queues  = sc->max_tx_queues;
@@ -488,4 +489,8 @@ bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	dev_info->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_20G;
 	dev_info->rx_offload_capa = DEV_RX_OFFLOAD_JUMBO_FRAME;
+
+	dev_info->rx_desc_lim.nb_max = MAX_RX_AVAIL;
+	dev_info->rx_desc_lim.nb_min = MIN_RX_SIZE_NONTPA;
+	dev_info->tx_desc_lim.nb_max = MAX_TX_AVAIL;
 }
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.346393889 +0100
+++ 0024-net-bnx2x-fix-supported-max-Rx-Tx-descriptor-count.patch	2019-06-24 16:18:55.035431129 +0100
@@ -1 +1 @@
-From 65a45ecc76bbca1c167bd034d85827666084d83a Mon Sep 17 00:00:00 2001
+From 539aba06f66109a67576a280c559cce46f5a3e38 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 65a45ecc76bbca1c167bd034d85827666084d83a ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -61 +62 @@
-index 7429004de..45c6c363c 100644
+index 7c440d33e..fa9d83154 100644

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

* [dpdk-stable] patch 'ethdev: fix Tx prepare documentation to use positive errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (22 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix supported max Rx/Tx descriptor count' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/atlantic: fix Tx prepare to set positive rte_errno' " Kevin Traynor
                   ` (35 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/5f8e93c62991d292e0151785d630b6a175c1496c

Thanks.

Kevin Traynor

---
From 5f8e93c62991d292e0151785d630b6a175c1496c Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:15:54 +0100
Subject: [PATCH] ethdev: fix Tx prepare documentation to use positive errno

[ upstream commit aab0afb49583a612ad55a3b193e1368fc76abe6a ]

Tx prepare documentation was incorrectly suggesting to use
negative rte_errno.

Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")
Fixes: 439a90b5f2a7 ("ethdev: reorder inline functions")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 lib/librte_ethdev/rte_ethdev.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 0e3536197..ec4b7752c 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -4207,6 +4207,6 @@ rte_eth_tx_burst(uint16_t port_id, uint16_t queue_id,
  *   less than the value of the *tx_pkts* parameter when some packet doesn't
  *   meet devices requirements with rte_errno set appropriately:
- *   - -EINVAL: offload flags are not correctly set
- *   - -ENOTSUP: the offload feature is not supported by the hardware
+ *   - EINVAL: offload flags are not correctly set
+ *   - ENOTSUP: the offload feature is not supported by the hardware
  *
  */
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.397579819 +0100
+++ 0025-ethdev-fix-Tx-prepare-documentation-to-use-positive-.patch	2019-06-24 16:18:55.038431058 +0100
@@ -1 +1 @@
-From aab0afb49583a612ad55a3b193e1368fc76abe6a Mon Sep 17 00:00:00 2001
+From 5f8e93c62991d292e0151785d630b6a175c1496c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit aab0afb49583a612ad55a3b193e1368fc76abe6a ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index a8a4a7f84..50c69362b 100644
+index 0e3536197..ec4b7752c 100644
@@ -23 +24 @@
-@@ -4408,6 +4408,6 @@ rte_eth_tx_burst(uint16_t port_id, uint16_t queue_id,
+@@ -4207,6 +4207,6 @@ rte_eth_tx_burst(uint16_t port_id, uint16_t queue_id,

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

* [dpdk-stable] patch 'net/atlantic: fix Tx prepare to set positive rte_errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (23 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'ethdev: fix Tx prepare documentation to use positive errno' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
                   ` (34 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/5b74e12aaec315cb93cfa93513510c26c28013cc

Thanks.

Kevin Traynor

---
From 5b74e12aaec315cb93cfa93513510c26c28013cc Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:15:55 +0100
Subject: [PATCH] net/atlantic: fix Tx prepare to set positive rte_errno

[ upstream commit 328121fd9efe8a1db013459b29b11f8d7687fed2 ]

Fixes: 2b1472d7150c ("net/atlantic: implement Tx path")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/atlantic/atl_rxtx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/atlantic/atl_rxtx.c b/drivers/net/atlantic/atl_rxtx.c
index fe0077044..449ffd454 100644
--- a/drivers/net/atlantic/atl_rxtx.c
+++ b/drivers/net/atlantic/atl_rxtx.c
@@ -825,5 +825,5 @@ atl_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
@@ -831,5 +831,5 @@ atl_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_net_intel_cksum_prepare(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.446681846 +0100
+++ 0026-net-atlantic-fix-Tx-prepare-to-set-positive-rte_errn.patch	2019-06-24 16:18:55.039431035 +0100
@@ -1 +1 @@
-From 328121fd9efe8a1db013459b29b11f8d7687fed2 Mon Sep 17 00:00:00 2001
+From 5b74e12aaec315cb93cfa93513510c26c28013cc Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 328121fd9efe8a1db013459b29b11f8d7687fed2 ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org

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

* [dpdk-stable] patch 'net/e1000: fix Tx prepare to set positive rte_errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (24 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/atlantic: fix Tx prepare to set positive rte_errno' " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
                   ` (33 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/842b47e8812bd7f4ecbc982916979db318258214

Thanks.

Kevin Traynor

---
From 842b47e8812bd7f4ecbc982916979db318258214 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:15:56 +0100
Subject: [PATCH] net/e1000: fix Tx prepare to set positive rte_errno

[ upstream commit ecafec261e9921d963a68ec40b652a9df6626f60 ]

Fixes: 2b76648872c9 ("net/e1000: add Tx preparation")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/e1000/em_rxtx.c  | 6 +++---
 drivers/net/e1000/igb_rxtx.c | 8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c
index 005e1ea96..0057dd01b 100644
--- a/drivers/net/e1000/em_rxtx.c
+++ b/drivers/net/e1000/em_rxtx.c
@@ -617,5 +617,5 @@ eth_em_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 
 		if (m->ol_flags & E1000_TX_OFFLOAD_NOTSUP_MASK) {
-			rte_errno = -ENOTSUP;
+			rte_errno = ENOTSUP;
 			return i;
 		}
@@ -624,5 +624,5 @@ eth_em_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
@@ -630,5 +630,5 @@ eth_em_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_net_intel_cksum_prepare(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
index ab0a80e15..28fff6ab4 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
@@ -630,10 +630,10 @@ eth_igb_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 					(m->l2_len + m->l3_len + m->l4_len >
 					IGB_TSO_MAX_HDRLEN)) {
-				rte_errno = -EINVAL;
+				rte_errno = EINVAL;
 				return i;
 			}
 
 		if (m->ol_flags & IGB_TX_OFFLOAD_NOTSUP_MASK) {
-			rte_errno = -ENOTSUP;
+			rte_errno = ENOTSUP;
 			return i;
 		}
@@ -642,5 +642,5 @@ eth_igb_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
@@ -648,5 +648,5 @@ eth_igb_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_net_intel_cksum_prepare(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.496015630 +0100
+++ 0027-net-e1000-fix-Tx-prepare-to-set-positive-rte_errno.patch	2019-06-24 16:18:55.043430940 +0100
@@ -1 +1 @@
-From ecafec261e9921d963a68ec40b652a9df6626f60 Mon Sep 17 00:00:00 2001
+From 842b47e8812bd7f4ecbc982916979db318258214 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ecafec261e9921d963a68ec40b652a9df6626f60 ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
-index 482d88459..708f832b0 100644
+index 005e1ea96..0057dd01b 100644
@@ -42 +43 @@
-index 871b5f3b9..c5606de5d 100644
+index ab0a80e15..28fff6ab4 100644
@@ -45 +46 @@
-@@ -633,10 +633,10 @@ eth_igb_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -630,10 +630,10 @@ eth_igb_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -58 +59 @@
-@@ -645,5 +645,5 @@ eth_igb_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -642,5 +642,5 @@ eth_igb_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -65 +66 @@
-@@ -651,5 +651,5 @@ eth_igb_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -648,5 +648,5 @@ eth_igb_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

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

* [dpdk-stable] patch 'net/enic: fix Tx prepare to set positive rte_errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (25 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/fm10k: " Kevin Traynor
                   ` (32 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/5527de5e7b681684ec830c2109e4309d0ac81e6e

Thanks.

Kevin Traynor

---
From 5527de5e7b681684ec830c2109e4309d0ac81e6e Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:15:57 +0100
Subject: [PATCH] net/enic: fix Tx prepare to set positive rte_errno

[ upstream commit ad8473ef0a155ee385caf5f3109abccc73b7728f ]

Fixes: 1e81dbb5321b ("net/enic: add Tx prepare handler")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/enic/enic_rxtx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/enic/enic_rxtx.c b/drivers/net/enic/enic_rxtx.c
index 0aadd3426..8fa864737 100644
--- a/drivers/net/enic/enic_rxtx.c
+++ b/drivers/net/enic/enic_rxtx.c
@@ -417,5 +417,5 @@ uint16_t enic_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
@@ -423,5 +423,5 @@ uint16_t enic_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_net_intel_cksum_prepare(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.547267018 +0100
+++ 0028-net-enic-fix-Tx-prepare-to-set-positive-rte_errno.patch	2019-06-24 16:18:55.044430917 +0100
@@ -1 +1 @@
-From ad8473ef0a155ee385caf5f3109abccc73b7728f Mon Sep 17 00:00:00 2001
+From 5527de5e7b681684ec830c2109e4309d0ac81e6e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ad8473ef0a155ee385caf5f3109abccc73b7728f ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org

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

* [dpdk-stable] patch 'net/fm10k: fix Tx prepare to set positive rte_errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (26 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
                   ` (31 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Xiao Wang, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/248199ab748879bc594b4083fdd4c47ca010b5ee

Thanks.

Kevin Traynor

---
From 248199ab748879bc594b4083fdd4c47ca010b5ee Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:15:58 +0100
Subject: [PATCH] net/fm10k: fix Tx prepare to set positive rte_errno

[ upstream commit dafc6dbcb4e688bb38fb23c71c914ee5e0cce56b ]

Fixes: 9b134aa39716 ("net/fm10k: add Tx preparation")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
---
 drivers/net/fm10k/fm10k_rxtx.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/fm10k/fm10k_rxtx.c b/drivers/net/fm10k/fm10k_rxtx.c
index fb02e1152..cd5231c9f 100644
--- a/drivers/net/fm10k/fm10k_rxtx.c
+++ b/drivers/net/fm10k/fm10k_rxtx.c
@@ -672,10 +672,10 @@ fm10k_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		if ((m->ol_flags & PKT_TX_TCP_SEG) &&
 				(m->tso_segsz < FM10K_TSO_MINMSS)) {
-			rte_errno = -EINVAL;
+			rte_errno = EINVAL;
 			return i;
 		}
 
 		if (m->ol_flags & FM10K_TX_OFFLOAD_NOTSUP_MASK) {
-			rte_errno = -ENOTSUP;
+			rte_errno = ENOTSUP;
 			return i;
 		}
@@ -684,5 +684,5 @@ fm10k_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
@@ -690,5 +690,5 @@ fm10k_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_net_intel_cksum_prepare(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.596016295 +0100
+++ 0029-net-fm10k-fix-Tx-prepare-to-set-positive-rte_errno.patch	2019-06-24 16:18:55.045430893 +0100
@@ -1 +1 @@
-From dafc6dbcb4e688bb38fb23c71c914ee5e0cce56b Mon Sep 17 00:00:00 2001
+From 248199ab748879bc594b4083fdd4c47ca010b5ee Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit dafc6dbcb4e688bb38fb23c71c914ee5e0cce56b ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
-index cc95f9589..2f4dad0c1 100644
+index fb02e1152..cd5231c9f 100644
@@ -19 +20 @@
-@@ -699,10 +699,10 @@ fm10k_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -672,10 +672,10 @@ fm10k_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -32 +33 @@
-@@ -711,5 +711,5 @@ fm10k_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -684,5 +684,5 @@ fm10k_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -39 +40 @@
-@@ -717,5 +717,5 @@ fm10k_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -690,5 +690,5 @@ fm10k_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

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

* [dpdk-stable] patch 'net/i40e: fix Tx prepare to set positive rte_errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (27 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/fm10k: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/iavf: " Kevin Traynor
                   ` (30 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/015246a32ab4a94773cc3923ab1db314ee923b71

Thanks.

Kevin Traynor

---
From 015246a32ab4a94773cc3923ab1db314ee923b71 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:15:59 +0100
Subject: [PATCH] net/i40e: fix Tx prepare to set positive rte_errno

[ upstream commit 39be55654e2dbbeb8f175c19d235ada6dfa82cc7 ]

Fixes: 3f33e643e5c6 ("net/i40e: add Tx preparation")
Fixes: bfeed0262b0c ("net/i40e: check illegal packets")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/i40e/i40e_rxtx.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 4640a9c66..679357bf8 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -1447,5 +1447,5 @@ i40e_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 			if (m->nb_segs > I40E_TX_MAX_MTU_SEG ||
 			    m->pkt_len > I40E_FRAME_SIZE_MAX) {
-				rte_errno = -EINVAL;
+				rte_errno = EINVAL;
 				return i;
 			}
@@ -1457,10 +1457,10 @@ i40e_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 			 * malicious
 			 */
-			rte_errno = -EINVAL;
+			rte_errno = EINVAL;
 			return i;
 		}
 
 		if (ol_flags & I40E_TX_OFFLOAD_NOTSUP_MASK) {
-			rte_errno = -ENOTSUP;
+			rte_errno = ENOTSUP;
 			return i;
 		}
@@ -1468,5 +1468,5 @@ i40e_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		/* check the size of packet */
 		if (m->pkt_len < I40E_TX_MIN_PKT_LEN) {
-			rte_errno = -EINVAL;
+			rte_errno = EINVAL;
 			return i;
 		}
@@ -1475,5 +1475,5 @@ i40e_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
@@ -1481,5 +1481,5 @@ i40e_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_net_intel_cksum_prepare(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.642098677 +0100
+++ 0030-net-i40e-fix-Tx-prepare-to-set-positive-rte_errno.patch	2019-06-24 16:18:55.047430846 +0100
@@ -1 +1 @@
-From 39be55654e2dbbeb8f175c19d235ada6dfa82cc7 Mon Sep 17 00:00:00 2001
+From 015246a32ab4a94773cc3923ab1db314ee923b71 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 39be55654e2dbbeb8f175c19d235ada6dfa82cc7 ]
+
@@ -8 +9,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
-index cd3d41f92..85c44f522 100644
+index 4640a9c66..679357bf8 100644

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

* [dpdk-stable] patch 'net/iavf: fix Tx prepare to set positive rte_errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (28 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
                   ` (29 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/ad49d936dbf39c115b5e785e6b039e600478b164

Thanks.

Kevin Traynor

---
From ad49d936dbf39c115b5e785e6b039e600478b164 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:16:00 +0100
Subject: [PATCH] net/iavf: fix Tx prepare to set positive rte_errno

[ upstream commit 5e129a2ddc0dc914a26448f29d5ac031da6d85cb ]

Fixes: a2b29a7733ef ("net/avf: enable basic Rx Tx")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/avf/avf_rxtx.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/avf/avf_rxtx.c b/drivers/net/avf/avf_rxtx.c
index 8c7a96727..52056c770 100644
--- a/drivers/net/avf/avf_rxtx.c
+++ b/drivers/net/avf/avf_rxtx.c
@@ -1699,5 +1699,5 @@ avf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		if (!(ol_flags & PKT_TX_TCP_SEG)) {
 			if (m->nb_segs > AVF_TX_MAX_MTU_SEG) {
-				rte_errno = -EINVAL;
+				rte_errno = EINVAL;
 				return i;
 			}
@@ -1705,10 +1705,10 @@ avf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 			   (m->tso_segsz > AVF_MAX_TSO_MSS)) {
 			/* MSS outside the range are considered malicious */
-			rte_errno = -EINVAL;
+			rte_errno = EINVAL;
 			return i;
 		}
 
 		if (ol_flags & AVF_TX_OFFLOAD_NOTSUP_MASK) {
-			rte_errno = -ENOTSUP;
+			rte_errno = ENOTSUP;
 			return i;
 		}
@@ -1717,5 +1717,5 @@ avf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
@@ -1723,5 +1723,5 @@ avf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_net_intel_cksum_prepare(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.693632578 +0100
+++ 0031-net-iavf-fix-Tx-prepare-to-set-positive-rte_errno.patch	2019-06-24 16:18:55.049430799 +0100
@@ -1 +1 @@
-From 5e129a2ddc0dc914a26448f29d5ac031da6d85cb Mon Sep 17 00:00:00 2001
+From ad49d936dbf39c115b5e785e6b039e600478b164 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5e129a2ddc0dc914a26448f29d5ac031da6d85cb ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org
@@ -12 +13 @@
- drivers/net/iavf/iavf_rxtx.c | 10 +++++-----
+ drivers/net/avf/avf_rxtx.c | 10 +++++-----
@@ -15,5 +16,5 @@
-diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
-index 682e8aa08..0be3ede31 100644
---- a/drivers/net/iavf/iavf_rxtx.c
-+++ b/drivers/net/iavf/iavf_rxtx.c
-@@ -1699,5 +1699,5 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+diff --git a/drivers/net/avf/avf_rxtx.c b/drivers/net/avf/avf_rxtx.c
+index 8c7a96727..52056c770 100644
+--- a/drivers/net/avf/avf_rxtx.c
++++ b/drivers/net/avf/avf_rxtx.c
+@@ -1699,5 +1699,5 @@ avf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -21 +22 @@
- 			if (m->nb_segs > IAVF_TX_MAX_MTU_SEG) {
+ 			if (m->nb_segs > AVF_TX_MAX_MTU_SEG) {
@@ -26,2 +27,2 @@
-@@ -1705,10 +1705,10 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
- 			   (m->tso_segsz > IAVF_MAX_TSO_MSS)) {
+@@ -1705,10 +1705,10 @@ avf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+ 			   (m->tso_segsz > AVF_MAX_TSO_MSS)) {
@@ -34 +35 @@
- 		if (ol_flags & IAVF_TX_OFFLOAD_NOTSUP_MASK) {
+ 		if (ol_flags & AVF_TX_OFFLOAD_NOTSUP_MASK) {
@@ -39 +40 @@
-@@ -1717,5 +1717,5 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1717,5 +1717,5 @@ avf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -46 +47 @@
-@@ -1723,5 +1723,5 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1723,5 +1723,5 @@ avf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

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

* [dpdk-stable] patch 'net/ixgbe: fix Tx prepare to set positive rte_errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (29 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/iavf: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/qede: " Kevin Traynor
                   ` (28 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/e6450a9764c6387101fdde9b22cba4b76520d2fd

Thanks.

Kevin Traynor

---
From e6450a9764c6387101fdde9b22cba4b76520d2fd Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:16:02 +0100
Subject: [PATCH] net/ixgbe: fix Tx prepare to set positive rte_errno

[ upstream commit 53dd95c10b1b9f5748d191becd710fbe531e378a ]

Fixes: 7829b8d52be0 ("net/ixgbe: add Tx preparation")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/ixgbe/ixgbe_rxtx.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index fd2d64ac6..94bec2183 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -982,10 +982,10 @@ ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 
 		if (m->nb_segs > IXGBE_TX_MAX_SEG - txq->wthresh) {
-			rte_errno = -EINVAL;
+			rte_errno = EINVAL;
 			return i;
 		}
 
 		if (ol_flags & IXGBE_TX_OFFLOAD_NOTSUP_MASK) {
-			rte_errno = -ENOTSUP;
+			rte_errno = ENOTSUP;
 			return i;
 		}
@@ -994,5 +994,5 @@ ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
@@ -1000,5 +1000,5 @@ ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 		ret = rte_net_intel_cksum_prepare(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.740752507 +0100
+++ 0032-net-ixgbe-fix-Tx-prepare-to-set-positive-rte_errno.patch	2019-06-24 16:18:55.053430704 +0100
@@ -1 +1 @@
-From 53dd95c10b1b9f5748d191becd710fbe531e378a Mon Sep 17 00:00:00 2001
+From e6450a9764c6387101fdde9b22cba4b76520d2fd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 53dd95c10b1b9f5748d191becd710fbe531e378a ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
-index a8ce561e2..edcfa60ce 100644
+index fd2d64ac6..94bec2183 100644
@@ -19 +20 @@
-@@ -985,10 +985,10 @@ ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -982,10 +982,10 @@ ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -32 +33 @@
-@@ -997,5 +997,5 @@ ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -994,5 +994,5 @@ ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -39 +40 @@
-@@ -1003,5 +1003,5 @@ ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -1000,5 +1000,5 @@ ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)

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

* [dpdk-stable] patch 'net/qede: fix Tx prepare to set positive rte_errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (30 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/vmxnet3: " Kevin Traynor
                   ` (27 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/2d29f37751f84a7035d7c9bd31d13aa302311165

Thanks.

Kevin Traynor

---
From 2d29f37751f84a7035d7c9bd31d13aa302311165 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:16:03 +0100
Subject: [PATCH] net/qede: fix Tx prepare to set positive rte_errno

[ upstream commit 48aa952c9bb2a38e1fd6373a1c413cefb87fcbd9 ]

Fixes: 29540be7efce ("net/qede: support LRO/TSO offloads")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/qede/qede_rxtx.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index 27bac0995..03f7785b6 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -1797,15 +1797,15 @@ qede_xmit_prep_pkts(__rte_unused void *p_txq, struct rte_mbuf **tx_pkts,
 		if (ol_flags & PKT_TX_TCP_SEG) {
 			if (m->nb_segs >= ETH_TX_MAX_BDS_PER_LSO_PACKET) {
-				rte_errno = -EINVAL;
+				rte_errno = EINVAL;
 				break;
 			}
 			/* TBD: confirm its ~9700B for both ? */
 			if (m->tso_segsz > ETH_TX_MAX_NON_LSO_PKT_LEN) {
-				rte_errno = -EINVAL;
+				rte_errno = EINVAL;
 				break;
 			}
 		} else {
 			if (m->nb_segs >= ETH_TX_MAX_BDS_PER_NON_LSO_PACKET) {
-				rte_errno = -EINVAL;
+				rte_errno = EINVAL;
 				break;
 			}
@@ -1824,5 +1824,5 @@ qede_xmit_prep_pkts(__rte_unused void *p_txq, struct rte_mbuf **tx_pkts,
 			}
 
-			rte_errno = -ENOTSUP;
+			rte_errno = ENOTSUP;
 			break;
 		}
@@ -1831,5 +1831,5 @@ qede_xmit_prep_pkts(__rte_unused void *p_txq, struct rte_mbuf **tx_pkts,
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			break;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.793762290 +0100
+++ 0033-net-qede-fix-Tx-prepare-to-set-positive-rte_errno.patch	2019-06-24 16:18:55.055430657 +0100
@@ -1 +1 @@
-From 48aa952c9bb2a38e1fd6373a1c413cefb87fcbd9 Mon Sep 17 00:00:00 2001
+From 2d29f37751f84a7035d7c9bd31d13aa302311165 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 48aa952c9bb2a38e1fd6373a1c413cefb87fcbd9 ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
-index bae26ce4c..c38cbb905 100644
+index 27bac0995..03f7785b6 100644
@@ -19 +20 @@
-@@ -1799,15 +1799,15 @@ qede_xmit_prep_pkts(__rte_unused void *p_txq, struct rte_mbuf **tx_pkts,
+@@ -1797,15 +1797,15 @@ qede_xmit_prep_pkts(__rte_unused void *p_txq, struct rte_mbuf **tx_pkts,
@@ -38 +39 @@
-@@ -1826,5 +1826,5 @@ qede_xmit_prep_pkts(__rte_unused void *p_txq, struct rte_mbuf **tx_pkts,
+@@ -1824,5 +1824,5 @@ qede_xmit_prep_pkts(__rte_unused void *p_txq, struct rte_mbuf **tx_pkts,
@@ -45 +46 @@
-@@ -1833,5 +1833,5 @@ qede_xmit_prep_pkts(__rte_unused void *p_txq, struct rte_mbuf **tx_pkts,
+@@ -1831,5 +1831,5 @@ qede_xmit_prep_pkts(__rte_unused void *p_txq, struct rte_mbuf **tx_pkts,

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

* [dpdk-stable] patch 'net/vmxnet3: fix Tx prepare to set positive rte_errno' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (31 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/qede: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: remove flow count action support' " Kevin Traynor
                   ` (26 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Yong Wang, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/329f64d6836f9963de1c546225e073f1b2b11006

Thanks.

Kevin Traynor

---
From 329f64d6836f9963de1c546225e073f1b2b11006 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 5 Jun 2019 09:16:04 +0100
Subject: [PATCH] net/vmxnet3: fix Tx prepare to set positive rte_errno

[ upstream commit fcae1808f8ed1358704f5e8ac037329a795f49ab ]

Fixes: baf3bbae5556 ("net/vmxnet3: add Tx preparation")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Yong Wang <yongwang@vmware.com>
---
 drivers/net/vmxnet3/vmxnet3_rxtx.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c
index d30914a8a..6efa3ac21 100644
--- a/drivers/net/vmxnet3/vmxnet3_rxtx.c
+++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c
@@ -362,5 +362,5 @@ vmxnet3_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		if ((ol_flags & PKT_TX_TCP_SEG) == 0 &&
 				m->nb_segs > VMXNET3_MAX_TXD_PER_PKT) {
-			rte_errno = -EINVAL;
+			rte_errno = EINVAL;
 			return i;
 		}
@@ -370,5 +370,5 @@ vmxnet3_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 				(ol_flags & PKT_TX_L4_MASK) ==
 				PKT_TX_SCTP_CKSUM) {
-			rte_errno = -ENOTSUP;
+			rte_errno = ENOTSUP;
 			return i;
 		}
@@ -377,5 +377,5 @@ vmxnet3_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
@@ -383,5 +383,5 @@ vmxnet3_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ret = rte_net_intel_cksum_prepare(m);
 		if (ret != 0) {
-			rte_errno = ret;
+			rte_errno = -ret;
 			return i;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.842474843 +0100
+++ 0034-net-vmxnet3-fix-Tx-prepare-to-set-positive-rte_errno.patch	2019-06-24 16:18:55.057430610 +0100
@@ -1 +1 @@
-From fcae1808f8ed1358704f5e8ac037329a795f49ab Mon Sep 17 00:00:00 2001
+From 329f64d6836f9963de1c546225e073f1b2b11006 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fcae1808f8ed1358704f5e8ac037329a795f49ab ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
-index 6644cde44..7794d7421 100644
+index d30914a8a..6efa3ac21 100644

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

* [dpdk-stable] patch 'net/enic: remove flow count action support' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (32 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/vmxnet3: " Kevin Traynor
@ 2019-06-24 15:24 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/enic: remove flow locks' " Kevin Traynor
                   ` (25 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:24 UTC (permalink / raw)
  To: John Daley; +Cc: Hyong Youb Kim, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/fa4f8eb5cd6bd17cbe2fbac61cdd91b2a06f23f2

Thanks.

Kevin Traynor

---
From fa4f8eb5cd6bd17cbe2fbac61cdd91b2a06f23f2 Mon Sep 17 00:00:00 2001
From: John Daley <johndale@cisco.com>
Date: Thu, 6 Jun 2019 08:26:57 -0700
Subject: [PATCH] net/enic: remove flow count action support

[ upstream commit d74111a9a1e64688208a41c487ee9908d920f20a ]

The firmware in 1400 series VIC adapters which would support COUNT
flow action was postponed and reworked. The capability will be
re-added in a future release when the firmware is available.

This reverts the following commits.
commit 86df6c4e2fce ("net/enic: support flow counter action")
commit 1b4ce87dc5e6 ("net/enic: fix counter action")

Signed-off-by: John Daley <johndale@cisco.com>
Reviewed-by: Hyong Youb Kim <hyonkim@cisco.com>
---
 doc/guides/nics/enic.rst            |   6 --
 drivers/net/enic/base/vnic_dev.c    | 105 --------------------
 drivers/net/enic/base/vnic_dev.h    |   8 --
 drivers/net/enic/base/vnic_devcmd.h |  58 +----------
 drivers/net/enic/enic.h             |   5 -
 drivers/net/enic/enic_flow.c        | 144 +---------------------------
 drivers/net/enic/enic_main.c        |  11 +--
 drivers/net/enic/enic_res.c         |   6 +-
 8 files changed, 10 insertions(+), 333 deletions(-)

diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
index c1b83b9b6..773f13b0f 100644
--- a/doc/guides/nics/enic.rst
+++ b/doc/guides/nics/enic.rst
@@ -261,10 +261,4 @@ Generic Flow API is supported. The baseline support is:
   - In total, up to 64 bytes of mask is allowed across all headers
 
-- **1400 and later series VICS with advanced filters enabled**
-
-  All the above plus:
-
-  - Action: count
-
 The VIC performs packet matching after applying VLAN strip. If VLAN
 stripping is enabled, EtherType in the ETH item corresponds to the
diff --git a/drivers/net/enic/base/vnic_dev.c b/drivers/net/enic/base/vnic_dev.c
index fd303fece..16e8814a6 100644
--- a/drivers/net/enic/base/vnic_dev.c
+++ b/drivers/net/enic/base/vnic_dev.c
@@ -58,7 +58,4 @@ struct vnic_dev {
 		size_t size, void *vaddr,
 		dma_addr_t dma_handle);
-	struct vnic_counter_counts *flow_counters;
-	dma_addr_t flow_counters_pa;
-	u8 flow_counters_dma_active;
 };
 
@@ -68,6 +65,4 @@ struct vnic_dev {
 #define VNIC_RES_STRIDE	128
 
-#define VNIC_MAX_FLOW_COUNTERS 2048
-
 void *vnic_dev_priv(struct vnic_dev *vdev)
 {
@@ -617,33 +612,4 @@ int vnic_dev_stats_dump(struct vnic_dev *vdev, struct vnic_stats **stats)
 }
 
-/*
- * Configure counter DMA
- */
-int vnic_dev_counter_dma_cfg(struct vnic_dev *vdev, u32 period,
-			     u32 num_counters)
-{
-	u64 args[3];
-	int wait = 1000;
-	int err;
-
-	if (num_counters > VNIC_MAX_FLOW_COUNTERS)
-		return -ENOMEM;
-	if (period > 0 && (period < VNIC_COUNTER_DMA_MIN_PERIOD ||
-	    num_counters == 0))
-		return -EINVAL;
-
-	args[0] = num_counters;
-	args[1] = vdev->flow_counters_pa;
-	args[2] = period;
-	err =  vnic_dev_cmd_args(vdev, CMD_COUNTER_DMA_CONFIG, args, 3, wait);
-
-	/* record if DMAs need to be stopped on close */
-	if (!err)
-		vdev->flow_counters_dma_active = (num_counters != 0 &&
-						  period != 0);
-
-	return err;
-}
-
 int vnic_dev_close(struct vnic_dev *vdev)
 {
@@ -974,22 +940,4 @@ int vnic_dev_alloc_stats_mem(struct vnic_dev *vdev)
 }
 
-/*
- * Initialize for up to VNIC_MAX_FLOW_COUNTERS
- */
-int vnic_dev_alloc_counter_mem(struct vnic_dev *vdev)
-{
-	char name[NAME_MAX];
-	static u32 instance;
-
-	snprintf((char *)name, sizeof(name), "vnic_flow_ctrs-%u", instance++);
-	vdev->flow_counters = vdev->alloc_consistent(vdev->priv,
-					     sizeof(struct vnic_counter_counts)
-					     * VNIC_MAX_FLOW_COUNTERS,
-					     &vdev->flow_counters_pa,
-					     (u8 *)name);
-	vdev->flow_counters_dma_active = 0;
-	return vdev->flow_counters == NULL ? -ENOMEM : 0;
-}
-
 void vnic_dev_unregister(struct vnic_dev *vdev)
 {
@@ -1004,14 +952,4 @@ void vnic_dev_unregister(struct vnic_dev *vdev)
 				sizeof(struct vnic_stats),
 				vdev->stats, vdev->stats_pa);
-		if (vdev->flow_counters) {
-			/* turn off counter DMAs before freeing memory */
-			if (vdev->flow_counters_dma_active)
-				vnic_dev_counter_dma_cfg(vdev, 0, 0);
-
-			vdev->free_consistent(vdev->priv,
-				sizeof(struct vnic_counter_counts)
-				* VNIC_MAX_FLOW_COUNTERS,
-				vdev->flow_counters, vdev->flow_counters_pa);
-		}
 		if (vdev->fw_info)
 			vdev->free_consistent(vdev->priv,
@@ -1157,45 +1095,2 @@ int vnic_dev_capable_vxlan(struct vnic_dev *vdev)
 		(FEATURE_VXLAN_IPV6 | FEATURE_VXLAN_MULTI_WQ);
 }
-
-bool vnic_dev_counter_alloc(struct vnic_dev *vdev, uint32_t *idx)
-{
-	u64 a0 = 0;
-	u64 a1 = 0;
-	int wait = 1000;
-
-	if (vnic_dev_cmd(vdev, CMD_COUNTER_ALLOC, &a0, &a1, wait))
-		return false;
-	*idx = (uint32_t)a0;
-	return true;
-}
-
-bool vnic_dev_counter_free(struct vnic_dev *vdev, uint32_t idx)
-{
-	u64 a0 = idx;
-	u64 a1 = 0;
-	int wait = 1000;
-
-	return vnic_dev_cmd(vdev, CMD_COUNTER_FREE, &a0, &a1,
-			    wait) == 0;
-}
-
-bool vnic_dev_counter_query(struct vnic_dev *vdev, uint32_t idx,
-			    bool reset, uint64_t *packets, uint64_t *bytes)
-{
-	u64 a0 = idx;
-	u64 a1 = reset ? 1 : 0;
-	int wait = 1000;
-
-	if (reset) {
-		/* query/reset returns updated counters */
-		if (vnic_dev_cmd(vdev, CMD_COUNTER_QUERY, &a0, &a1, wait))
-			return false;
-		*packets = a0;
-		*bytes = a1;
-	} else {
-		/* Get values DMA'd from the adapter */
-		*packets = vdev->flow_counters[idx].vcc_packets;
-		*bytes = vdev->flow_counters[idx].vcc_bytes;
-	}
-	return true;
-}
diff --git a/drivers/net/enic/base/vnic_dev.h b/drivers/net/enic/base/vnic_dev.h
index de2645c43..270a47bd2 100644
--- a/drivers/net/enic/base/vnic_dev.h
+++ b/drivers/net/enic/base/vnic_dev.h
@@ -119,6 +119,4 @@ int vnic_dev_spec(struct vnic_dev *vdev, unsigned int offset, size_t size,
 int vnic_dev_stats_clear(struct vnic_dev *vdev);
 int vnic_dev_stats_dump(struct vnic_dev *vdev, struct vnic_stats **stats);
-int vnic_dev_counter_dma_cfg(struct vnic_dev *vdev, u32 period,
-			     u32 num_counters);
 int vnic_dev_hang_notify(struct vnic_dev *vdev);
 int vnic_dev_packet_filter(struct vnic_dev *vdev, int directed, int multicast,
@@ -173,5 +171,4 @@ struct vnic_dev *vnic_dev_register(struct vnic_dev *vdev,
 struct rte_pci_device *vnic_dev_get_pdev(struct vnic_dev *vdev);
 int vnic_dev_alloc_stats_mem(struct vnic_dev *vdev);
-int vnic_dev_alloc_counter_mem(struct vnic_dev *vdev);
 int vnic_dev_cmd_init(struct vnic_dev *vdev, int fallback);
 int vnic_dev_get_size(void);
@@ -191,8 +188,3 @@ int vnic_dev_overlay_offload_cfg(struct vnic_dev *vdev, u8 overlay,
 	u16 vxlan_udp_port_number);
 int vnic_dev_capable_vxlan(struct vnic_dev *vdev);
-bool vnic_dev_counter_alloc(struct vnic_dev *vdev, uint32_t *idx);
-bool vnic_dev_counter_free(struct vnic_dev *vdev, uint32_t idx);
-bool vnic_dev_counter_query(struct vnic_dev *vdev, uint32_t idx,
-			    bool reset, uint64_t *packets, uint64_t *bytes);
-
 #endif /* _VNIC_DEV_H_ */
diff --git a/drivers/net/enic/base/vnic_devcmd.h b/drivers/net/enic/base/vnic_devcmd.h
index 3aad2dbd5..fffe307e0 100644
--- a/drivers/net/enic/base/vnic_devcmd.h
+++ b/drivers/net/enic/base/vnic_devcmd.h
@@ -599,46 +599,4 @@ enum vnic_devcmd_cmd {
 	 */
 	CMD_ADD_ADV_FILTER = _CMDC(_CMD_DIR_RW, _CMD_VTYPE_ENET, 77),
-
-	/*
-	 * Allocate a counter for use with CMD_ADD_FILTER
-	 * out:(u32) a0 = counter index
-	 */
-	CMD_COUNTER_ALLOC = _CMDC(_CMD_DIR_READ, _CMD_VTYPE_ENET, 85),
-
-	/*
-	 * Free a counter
-	 * in: (u32) a0 = counter_id
-	 */
-	CMD_COUNTER_FREE = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 86),
-
-	/*
-	 * Read a counter
-	 * in: (u32) a0 = counter_id
-	 *     (u32) a1 = clear counter if non-zero
-	 * out:(u64) a0 = packet count
-	 *     (u64) a1 = byte count
-	 */
-	CMD_COUNTER_QUERY = _CMDC(_CMD_DIR_RW, _CMD_VTYPE_ENET, 87),
-
-	/*
-	 * Configure periodic counter DMA.  This will trigger an immediate
-	 * DMA of the counters (unless period == 0), and then schedule a DMA
-	 * of the counters every <period> seconds until disdabled.
-	 * Each new COUNTER_DMA_CONFIG will override all previous commands on
-	 * this vnic.
-	 * Setting a2 (period) = 0 will disable periodic DMAs
-	 * If a0 (num_counters) != 0, an immediate DMA will always be done,
-	 * irrespective of the value in a2.
-	 * in: (u32) a0 = number of counters to DMA
-	 *     (u64) a1 = host target DMA address
-	 *     (u32) a2 = DMA period in milliseconds (0 to disable)
-	 */
-	CMD_COUNTER_DMA_CONFIG = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 88),
-#define VNIC_COUNTER_DMA_MIN_PERIOD 500
-
-	/*
-	 * Clear all counters on a vnic
-	 */
-	CMD_COUNTER_CLEAR_ALL = _CMDC(_CMD_DIR_NONE, _CMD_VTYPE_ENET, 89),
 };
 
@@ -906,9 +864,7 @@ struct filter_action {
 #define FILTER_ACTION_FILTER_ID_FLAG	(1 << 1)
 #define FILTER_ACTION_DROP_FLAG		(1 << 2)
-#define FILTER_ACTION_COUNTER_FLAG      (1 << 3)
 #define FILTER_ACTION_V2_ALL		(FILTER_ACTION_RQ_STEERING_FLAG \
-					 | FILTER_ACTION_FILTER_ID_FLAG \
 					 | FILTER_ACTION_DROP_FLAG \
-					 | FILTER_ACTION_COUNTER_FLAG)
+					 | FILTER_ACTION_FILTER_ID_FLAG)
 
 /* Version 2 of filter action must be a strict extension of struct filter_action
@@ -920,6 +876,5 @@ struct filter_action_v2 {
 	u32 flags;                     /* use FILTER_ACTION_XXX_FLAG defines */
 	u16 filter_id;
-	u32 counter_index;
-	uint8_t reserved[28];         /* for future expansion */
+	uint8_t reserved[32];         /* for future expansion */
 } __attribute__((packed));
 
@@ -1168,12 +1123,3 @@ typedef enum {
 } grpintr_subcmd_t;
 
-/*
- * Structure for counter DMA
- * (DMAed by CMD_COUNTER_DMA_CONFIG)
- */
-struct vnic_counter_counts {
-	u64 vcc_packets;
-	u64 vcc_bytes;
-};
-
 #endif /* _VNIC_DEVCMD_H_ */
diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index 4d6b82ee9..d4c460343 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -40,7 +40,4 @@
 	((((unsigned long)(x)) + ENIC_PAGE_SIZE-1) & (~(ENIC_PAGE_SIZE-1)))
 
-/* must be >= VNIC_COUNTER_DMA_MIN_PERIOD */
-#define VNIC_FLOW_COUNTER_UPDATE_MSECS 500
-
 #define ENICPMD_VFIO_PATH          "/dev/vfio/vfio"
 /*#define ENIC_DESC_COUNT_MAKE_ODD (x) do{if ((~(x)) & 1) { (x)--; } }while(0)*/
@@ -98,5 +95,4 @@ struct rte_flow {
 	u16 enic_filter_id;
 	struct filter_v2 enic_filter;
-	int counter_idx; /* NIC allocated counter index (-1 = invalid) */
 };
 
@@ -176,5 +172,4 @@ struct enic {
 
 	LIST_HEAD(enic_flows, rte_flow) flows;
-	int max_flow_counter;
 	rte_spinlock_t flows_lock;
 
diff --git a/drivers/net/enic/enic_flow.c b/drivers/net/enic/enic_flow.c
index dbc8de839..c32f79bcf 100644
--- a/drivers/net/enic/enic_flow.c
+++ b/drivers/net/enic/enic_flow.c
@@ -338,13 +338,4 @@ static const enum rte_flow_action_type enic_supported_actions_v2_drop[] = {
 };
 
-static const enum rte_flow_action_type enic_supported_actions_v2_count[] = {
-	RTE_FLOW_ACTION_TYPE_QUEUE,
-	RTE_FLOW_ACTION_TYPE_MARK,
-	RTE_FLOW_ACTION_TYPE_FLAG,
-	RTE_FLOW_ACTION_TYPE_DROP,
-	RTE_FLOW_ACTION_TYPE_COUNT,
-	RTE_FLOW_ACTION_TYPE_END,
-};
-
 /** Action capabilities indexed by NIC version information */
 static const struct enic_action_cap enic_action_cap[] = {
@@ -361,8 +352,4 @@ static const struct enic_action_cap enic_action_cap[] = {
 		.copy_fn = enic_copy_action_v2,
 	},
-	[FILTER_ACTION_COUNTER_FLAG] = {
-		.actions = enic_supported_actions_v2_count,
-		.copy_fn = enic_copy_action_v2,
-	},
 };
 
@@ -1189,8 +1176,4 @@ enic_copy_action_v2(const struct rte_flow_action actions[],
 			break;
 		}
-		case RTE_FLOW_ACTION_TYPE_COUNT: {
-			enic_action->flags |= FILTER_ACTION_COUNTER_FLAG;
-			break;
-		}
 		case RTE_FLOW_ACTION_TYPE_VOID:
 			continue;
@@ -1237,7 +1220,5 @@ enic_get_action_cap(struct enic *enic)
 
 	actions = enic->filter_actions;
-	if (actions & FILTER_ACTION_COUNTER_FLAG)
-		ea = &enic_action_cap[FILTER_ACTION_COUNTER_FLAG];
-	else if (actions & FILTER_ACTION_DROP_FLAG)
+	if (actions & FILTER_ACTION_DROP_FLAG)
 		ea = &enic_action_cap[FILTER_ACTION_DROP_FLAG];
 	else if (actions & FILTER_ACTION_FILTER_ID_FLAG)
@@ -1523,7 +1504,5 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
 	struct rte_flow *flow;
 	int err;
-	uint16_t entry;
-	int ctr_idx;
-	int last_max_flow_ctr;
+	u16 entry;
 
 	FLOW_TRACE();
@@ -1536,32 +1515,4 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
 	}
 
-	flow->counter_idx = -1;
-	last_max_flow_ctr = -1;
-	if (enic_action->flags & FILTER_ACTION_COUNTER_FLAG) {
-		if (!vnic_dev_counter_alloc(enic->vdev, (uint32_t *)&ctr_idx)) {
-			rte_flow_error_set(error, ENOMEM,
-					   RTE_FLOW_ERROR_TYPE_ACTION_CONF,
-					   NULL, "cannot allocate counter");
-			goto unwind_flow_alloc;
-		}
-		flow->counter_idx = ctr_idx;
-		enic_action->counter_index = ctr_idx;
-
-		/* If index is the largest, increase the counter DMA size */
-		if (ctr_idx > enic->max_flow_counter) {
-			err = vnic_dev_counter_dma_cfg(enic->vdev,
-						 VNIC_FLOW_COUNTER_UPDATE_MSECS,
-						 ctr_idx + 1);
-			if (err) {
-				rte_flow_error_set(error, -err,
-					   RTE_FLOW_ERROR_TYPE_ACTION_CONF,
-					   NULL, "counter DMA config failed");
-				goto unwind_ctr_alloc;
-			}
-			last_max_flow_ctr = enic->max_flow_counter;
-			enic->max_flow_counter = ctr_idx;
-		}
-	}
-
 	/* entry[in] is the queue id, entry[out] is the filter Id for delete */
 	entry = enic_action->rq_idx;
@@ -1571,27 +1522,11 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
 		rte_flow_error_set(error, -err, RTE_FLOW_ERROR_TYPE_HANDLE,
 				   NULL, "vnic_dev_classifier error");
-		goto unwind_ctr_dma_cfg;
+		rte_free(flow);
+		return NULL;
 	}
 
 	flow->enic_filter_id = entry;
 	flow->enic_filter = *enic_filter;
-
 	return flow;
-
-/* unwind if there are errors */
-unwind_ctr_dma_cfg:
-	if (last_max_flow_ctr != -1) {
-		/* reduce counter DMA size */
-		vnic_dev_counter_dma_cfg(enic->vdev,
-					 VNIC_FLOW_COUNTER_UPDATE_MSECS,
-					 last_max_flow_ctr + 1);
-		enic->max_flow_counter = last_max_flow_ctr;
-	}
-unwind_ctr_alloc:
-	if (flow->counter_idx != -1)
-		vnic_dev_counter_free(enic->vdev, ctr_idx);
-unwind_flow_alloc:
-	rte_free(flow);
-	return NULL;
 }
 
@@ -1623,11 +1558,4 @@ enic_flow_del_filter(struct enic *enic, struct rte_flow *flow,
 		return -err;
 	}
-
-	if (flow->counter_idx != -1) {
-		if (!vnic_dev_counter_free(enic->vdev, flow->counter_idx))
-			dev_err(enic, "counter free failed, idx: %d\n",
-				flow->counter_idx);
-		flow->counter_idx = -1;
-	}
 	return 0;
 }
@@ -1746,67 +1674,4 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
 }
 
-static int
-enic_flow_query_count(struct rte_eth_dev *dev,
-		      struct rte_flow *flow, void *data,
-		      struct rte_flow_error *error)
-{
-	struct enic *enic = pmd_priv(dev);
-	struct rte_flow_query_count *query;
-	uint64_t packets, bytes;
-
-	FLOW_TRACE();
-
-	if (flow->counter_idx == -1) {
-		return rte_flow_error_set(error, ENOTSUP,
-					  RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
-					  NULL,
-					  "flow does not have counter");
-	}
-	query = (struct rte_flow_query_count *)data;
-	if (!vnic_dev_counter_query(enic->vdev, flow->counter_idx,
-				    !!query->reset, &packets, &bytes)) {
-		return rte_flow_error_set
-			(error, EINVAL,
-			 RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
-			 NULL,
-			 "cannot read counter");
-	}
-	query->hits_set = 1;
-	query->bytes_set = 1;
-	query->hits = packets;
-	query->bytes = bytes;
-	return 0;
-}
-
-static int
-enic_flow_query(struct rte_eth_dev *dev,
-		struct rte_flow *flow,
-		const struct rte_flow_action *actions,
-		void *data,
-		struct rte_flow_error *error)
-{
-	int ret = 0;
-
-	FLOW_TRACE();
-
-	for (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {
-		switch (actions->type) {
-		case RTE_FLOW_ACTION_TYPE_VOID:
-			break;
-		case RTE_FLOW_ACTION_TYPE_COUNT:
-			ret = enic_flow_query_count(dev, flow, data, error);
-			break;
-		default:
-			return rte_flow_error_set(error, ENOTSUP,
-						  RTE_FLOW_ERROR_TYPE_ACTION,
-						  actions,
-						  "action not supported");
-		}
-		if (ret < 0)
-			return ret;
-	}
-	return 0;
-}
-
 /**
  * Flow callback registration.
@@ -1819,4 +1684,3 @@ const struct rte_flow_ops enic_flow_ops = {
 	.destroy = enic_flow_destroy,
 	.flush = enic_flow_flush,
-	.query = enic_flow_query,
 };
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 098a18d63..44d2b2e78 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -1682,5 +1682,4 @@ static int enic_dev_init(struct enic *enic)
 	LIST_INIT(&enic->flows);
 	rte_spinlock_init(&enic->flows_lock);
-	enic->max_flow_counter = -1;
 
 	/* set up link status checking */
@@ -1770,6 +1769,6 @@ int enic_probe(struct enic *enic)
 
 	/*
-	 * Allocate the consistent memory for stats and counters upfront so
-	 * both primary and secondary processes can access them.
+	 * Allocate the consistent memory for stats upfront so both primary and
+	 * secondary processes can dump stats.
 	 */
 	err = vnic_dev_alloc_stats_mem(enic->vdev);
@@ -1778,10 +1777,4 @@ int enic_probe(struct enic *enic)
 		goto err_out_unregister;
 	}
-	err = vnic_dev_alloc_counter_mem(enic->vdev);
-	if (err) {
-		dev_err(enic, "Failed to allocate counter memory, aborting\n");
-		goto err_out_unregister;
-	}
-
 	/* Issue device open to get device in known state */
 	err = enic_dev_open(enic);
diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c
index 78bb6b8f1..d53202f9b 100644
--- a/drivers/net/enic/enic_res.c
+++ b/drivers/net/enic/enic_res.c
@@ -85,5 +85,5 @@ int enic_get_vnic_config(struct enic *enic)
 				      &enic->udp_rss_weak);
 
-	dev_info(enic, "Flow api filter mode: %s Actions: %s%s%s%s\n",
+	dev_info(enic, "Flow api filter mode: %s Actions: %s%s%s\n",
 		((enic->flow_filter_mode == FILTER_DPDK_1) ? "DPDK" :
 		((enic->flow_filter_mode == FILTER_USNIC_IP) ? "USNIC" :
@@ -95,7 +95,5 @@ int enic_get_vnic_config(struct enic *enic)
 		 "tag " : ""),
 		((enic->filter_actions & FILTER_ACTION_DROP_FLAG) ?
-		 "drop " : ""),
-		((enic->filter_actions & FILTER_ACTION_COUNTER_FLAG) ?
-		 "count " : ""));
+		 "drop " : ""));
 
 	c->wq_desc_count =
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.892750467 +0100
+++ 0035-net-enic-remove-flow-count-action-support.patch	2019-06-24 16:18:55.063430468 +0100
@@ -1 +1 @@
-From d74111a9a1e64688208a41c487ee9908d920f20a Mon Sep 17 00:00:00 2001
+From fa4f8eb5cd6bd17cbe2fbac61cdd91b2a06f23f2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d74111a9a1e64688208a41c487ee9908d920f20a ]
+
@@ -14,2 +15,0 @@
-Cc: stable@dpdk.org
-
@@ -24 +24 @@
- drivers/net/enic/enic_flow.c        | 146 +---------------------------
+ drivers/net/enic/enic_flow.c        | 144 +---------------------------
@@ -27 +27 @@
- 8 files changed, 10 insertions(+), 335 deletions(-)
+ 8 files changed, 10 insertions(+), 333 deletions(-)
@@ -30 +30 @@
-index cdb55e037..5681bdb54 100644
+index c1b83b9b6..773f13b0f 100644
@@ -45 +45 @@
-index 1e5b12a80..8e190687d 100644
+index fd303fece..16e8814a6 100644
@@ -63 +63 @@
-@@ -643,33 +638,4 @@ int vnic_dev_stats_dump(struct vnic_dev *vdev, struct vnic_stats **stats)
+@@ -617,33 +612,4 @@ int vnic_dev_stats_dump(struct vnic_dev *vdev, struct vnic_stats **stats)
@@ -97 +97 @@
-@@ -1000,22 +966,4 @@ int vnic_dev_alloc_stats_mem(struct vnic_dev *vdev)
+@@ -974,22 +940,4 @@ int vnic_dev_alloc_stats_mem(struct vnic_dev *vdev)
@@ -120 +120 @@
-@@ -1030,14 +978,4 @@ void vnic_dev_unregister(struct vnic_dev *vdev)
+@@ -1004,14 +952,4 @@ void vnic_dev_unregister(struct vnic_dev *vdev)
@@ -135 +135 @@
-@@ -1183,45 +1121,2 @@ int vnic_dev_capable_vxlan(struct vnic_dev *vdev)
+@@ -1157,45 +1095,2 @@ int vnic_dev_capable_vxlan(struct vnic_dev *vdev)
@@ -291 +291 @@
-index beb439ee7..859d018a0 100644
+index 4d6b82ee9..d4c460343 100644
@@ -294 +294 @@
-@@ -38,7 +38,4 @@
+@@ -40,7 +40,4 @@
@@ -302 +302 @@
-@@ -96,5 +93,4 @@ struct rte_flow {
+@@ -98,5 +95,4 @@ struct rte_flow {
@@ -308 +308 @@
-@@ -174,5 +170,4 @@ struct enic {
+@@ -176,5 +172,4 @@ struct enic {
@@ -315 +315 @@
-index cbc212e2a..f389677c0 100644
+index dbc8de839..c32f79bcf 100644
@@ -318 +318 @@
-@@ -361,15 +361,4 @@ static const enum rte_flow_action_type enic_supported_actions_v2_drop[] = {
+@@ -338,13 +338,4 @@ static const enum rte_flow_action_type enic_supported_actions_v2_drop[] = {
@@ -327,2 +326,0 @@
--	RTE_FLOW_ACTION_TYPE_RSS,
--	RTE_FLOW_ACTION_TYPE_PASSTHRU,
@@ -334 +332 @@
-@@ -386,8 +375,4 @@ static const struct enic_action_cap enic_action_cap[] = {
+@@ -361,8 +352,4 @@ static const struct enic_action_cap enic_action_cap[] = {
@@ -343 +341 @@
-@@ -1266,8 +1251,4 @@ enic_copy_action_v2(struct enic *enic,
+@@ -1189,8 +1176,4 @@ enic_copy_action_v2(const struct rte_flow_action actions[],
@@ -350,3 +348,3 @@
- 		case RTE_FLOW_ACTION_TYPE_RSS: {
- 			const struct rte_flow_action_rss *rss =
-@@ -1361,7 +1342,5 @@ enic_get_action_cap(struct enic *enic)
+ 		case RTE_FLOW_ACTION_TYPE_VOID:
+ 			continue;
+@@ -1237,7 +1220,5 @@ enic_get_action_cap(struct enic *enic)
@@ -361 +359 @@
-@@ -1647,7 +1626,5 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
+@@ -1523,7 +1504,5 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
@@ -370 +368 @@
-@@ -1660,32 +1637,4 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
+@@ -1536,32 +1515,4 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
@@ -403 +401 @@
-@@ -1695,27 +1644,11 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
+@@ -1571,27 +1522,11 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
@@ -433 +431 @@
-@@ -1747,11 +1680,4 @@ enic_flow_del_filter(struct enic *enic, struct rte_flow *flow,
+@@ -1623,11 +1558,4 @@ enic_flow_del_filter(struct enic *enic, struct rte_flow *flow,
@@ -445 +443 @@
-@@ -1870,67 +1796,4 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
+@@ -1746,67 +1674,4 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
@@ -513 +511 @@
-@@ -1943,4 +1806,3 @@ const struct rte_flow_ops enic_flow_ops = {
+@@ -1819,4 +1684,3 @@ const struct rte_flow_ops enic_flow_ops = {
@@ -519 +517 @@
-index cbd283946..2d6761bdd 100644
+index 098a18d63..44d2b2e78 100644
@@ -522 +520 @@
-@@ -1681,5 +1681,4 @@ static int enic_dev_init(struct enic *enic)
+@@ -1682,5 +1682,4 @@ static int enic_dev_init(struct enic *enic)
@@ -528 +526 @@
-@@ -1769,6 +1768,6 @@ int enic_probe(struct enic *enic)
+@@ -1770,6 +1769,6 @@ int enic_probe(struct enic *enic)
@@ -537 +535 @@
-@@ -1777,10 +1776,4 @@ int enic_probe(struct enic *enic)
+@@ -1778,10 +1777,4 @@ int enic_probe(struct enic *enic)
@@ -549 +547 @@
-index 21cfbb8c5..9405e1933 100644
+index 78bb6b8f1..d53202f9b 100644
@@ -552 +550 @@
-@@ -86,5 +86,5 @@ int enic_get_vnic_config(struct enic *enic)
+@@ -85,5 +85,5 @@ int enic_get_vnic_config(struct enic *enic)
@@ -559 +557 @@
-@@ -96,7 +96,5 @@ int enic_get_vnic_config(struct enic *enic)
+@@ -95,7 +95,5 @@ int enic_get_vnic_config(struct enic *enic)

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

* [dpdk-stable] patch 'net/enic: remove flow locks' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (33 preceding siblings ...)
  2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: remove flow count action support' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: check for null completion ring doorbell' " Kevin Traynor
                   ` (24 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: John Daley; +Cc: Hyong Youb Kim, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/f1b12756062767c1974eecc452f205c51141cfa4

Thanks.

Kevin Traynor

---
From f1b12756062767c1974eecc452f205c51141cfa4 Mon Sep 17 00:00:00 2001
From: John Daley <johndale@cisco.com>
Date: Thu, 6 Jun 2019 08:26:58 -0700
Subject: [PATCH] net/enic: remove flow locks

[ upstream commit 889dcfd57145250b4de1b79b728e8c04098efa09 ]

There is no requirement for thread safety in the flow PMD code and no
need for the locks.

Fixes: 6ced137607d0 ("net/enic: flow API for NICs with advanced filters enabled")

Signed-off-by: John Daley <johndale@cisco.com>
Reviewed-by: Hyong Youb Kim <hyonkim@cisco.com>
---
 drivers/net/enic/enic.h      | 1 -
 drivers/net/enic/enic_flow.c | 6 ------
 drivers/net/enic/enic_main.c | 1 -
 3 files changed, 8 deletions(-)

diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index d4c460343..49831b00a 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -172,5 +172,4 @@ struct enic {
 
 	LIST_HEAD(enic_flows, rte_flow) flows;
-	rte_spinlock_t flows_lock;
 
 	/* RSS */
diff --git a/drivers/net/enic/enic_flow.c b/drivers/net/enic/enic_flow.c
index c32f79bcf..ada570844 100644
--- a/drivers/net/enic/enic_flow.c
+++ b/drivers/net/enic/enic_flow.c
@@ -1616,10 +1616,8 @@ enic_flow_create(struct rte_eth_dev *dev,
 		return NULL;
 
-	rte_spinlock_lock(&enic->flows_lock);
 	flow = enic_flow_add_filter(enic, &enic_filter, &enic_action,
 				    error);
 	if (flow)
 		LIST_INSERT_HEAD(&enic->flows, flow, next);
-	rte_spinlock_unlock(&enic->flows_lock);
 
 	return flow;
@@ -1640,8 +1638,6 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
 	FLOW_TRACE();
 
-	rte_spinlock_lock(&enic->flows_lock);
 	enic_flow_del_filter(enic, flow, error);
 	LIST_REMOVE(flow, next);
-	rte_spinlock_unlock(&enic->flows_lock);
 	rte_free(flow);
 	return 0;
@@ -1662,5 +1658,4 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
 	FLOW_TRACE();
 
-	rte_spinlock_lock(&enic->flows_lock);
 
 	while (!LIST_EMPTY(&enic->flows)) {
@@ -1670,5 +1665,4 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
 		rte_free(flow);
 	}
-	rte_spinlock_unlock(&enic->flows_lock);
 	return 0;
 }
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 44d2b2e78..5fb5122da 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -1681,5 +1681,4 @@ static int enic_dev_init(struct enic *enic)
 
 	LIST_INIT(&enic->flows);
-	rte_spinlock_init(&enic->flows_lock);
 
 	/* set up link status checking */
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.950284023 +0100
+++ 0036-net-enic-remove-flow-locks.patch	2019-06-24 16:18:55.066430397 +0100
@@ -1 +1 @@
-From 889dcfd57145250b4de1b79b728e8c04098efa09 Mon Sep 17 00:00:00 2001
+From f1b12756062767c1974eecc452f205c51141cfa4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 889dcfd57145250b4de1b79b728e8c04098efa09 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 859d018a0..5a92508f0 100644
+index d4c460343..49831b00a 100644
@@ -24 +25 @@
-@@ -170,5 +170,4 @@ struct enic {
+@@ -172,5 +172,4 @@ struct enic {
@@ -31 +32 @@
-index f389677c0..06796201d 100644
+index c32f79bcf..ada570844 100644
@@ -34 +35 @@
-@@ -1738,10 +1738,8 @@ enic_flow_create(struct rte_eth_dev *dev,
+@@ -1616,10 +1616,8 @@ enic_flow_create(struct rte_eth_dev *dev,
@@ -45 +46 @@
-@@ -1762,8 +1760,6 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
+@@ -1640,8 +1638,6 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
@@ -54 +55 @@
-@@ -1784,5 +1780,4 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
+@@ -1662,5 +1658,4 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
@@ -60 +61 @@
-@@ -1792,5 +1787,4 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
+@@ -1670,5 +1665,4 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
@@ -67 +68 @@
-index 2d6761bdd..c68d388dc 100644
+index 44d2b2e78..5fb5122da 100644
@@ -70 +71 @@
-@@ -1680,5 +1680,4 @@ static int enic_dev_init(struct enic *enic)
+@@ -1681,5 +1681,4 @@ static int enic_dev_init(struct enic *enic)

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

* [dpdk-stable] patch 'net/bnxt: check for null completion ring doorbell' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (34 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/enic: remove flow locks' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-25  3:42   ` Somnath Kotur
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix xstats' " Kevin Traynor
                   ` (23 subsequent siblings)
  59 siblings, 1 reply; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Somnath Kotur; +Cc: Kalesh AP, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/0e449f4f13ad7d9c8ff1c241a51b5d41cd03d245

Thanks.

Kevin Traynor

---
From 0e449f4f13ad7d9c8ff1c241a51b5d41cd03d245 Mon Sep 17 00:00:00 2001
From: Somnath Kotur <somnath.kotur@broadcom.com>
Date: Sat, 8 Jun 2019 23:22:04 +0400
Subject: [PATCH] net/bnxt: check for null completion ring doorbell

[ upstream commit 2807c5861e31b99295b915b28e121ce059a46416 ]

It is observed that sometimes during init, the bnxt_int_handler() gets
invoked while the cpr->cp_db.doorbell is not yet initialized. Check for
the same and return.

Fixes: f7ecea911ec5 ("net/bnxt: fix interrupt handler")

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_irq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_irq.c b/drivers/net/bnxt/bnxt_irq.c
index e03766b41..e3aac7cbe 100644
--- a/drivers/net/bnxt/bnxt_irq.c
+++ b/drivers/net/bnxt/bnxt_irq.c
@@ -32,5 +32,5 @@ static void bnxt_int_handler(void *param)
 	raw_cons = cpr->cp_raw_cons;
 	while (1) {
-		if (!cpr || !cpr->cp_ring_struct)
+		if (!cpr || !cpr->cp_ring_struct || !cpr->cp_doorbell)
 			return;
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.998750420 +0100
+++ 0037-net-bnxt-check-for-null-completion-ring-doorbell.patch	2019-06-24 16:18:55.067430374 +0100
@@ -1 +1 @@
-From 2807c5861e31b99295b915b28e121ce059a46416 Mon Sep 17 00:00:00 2001
+From 0e449f4f13ad7d9c8ff1c241a51b5d41cd03d245 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2807c5861e31b99295b915b28e121ce059a46416 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 918f3dcf4..0bb3eb4fa 100644
+index e03766b41..e3aac7cbe 100644
@@ -28 +29 @@
-+		if (!cpr || !cpr->cp_ring_struct || !cpr->cp_db.doorbell)
++		if (!cpr || !cpr->cp_ring_struct || !cpr->cp_doorbell)

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

* [dpdk-stable] patch 'net/bnxt: fix xstats' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (35 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: check for null completion ring doorbell' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix interrupt vector initialization' " Kevin Traynor
                   ` (22 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Ajit Khaparde, Lance Richardson, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/a9aa6bf45945e28a58a570a74d250c8fc099bb4c

Thanks.

Kevin Traynor

---
From a9aa6bf45945e28a58a570a74d250c8fc099bb4c Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Sat, 8 Jun 2019 23:22:06 +0400
Subject: [PATCH] net/bnxt: fix xstats

[ upstream commit a9586abdbcb3178b94570dd0af3646104f1154cd ]

If the HWRM_PORT_QSTATS_EXT fails to initialize
fw_rx_port_stats_ext_size or fw_tx_port_stats_ext_size,
the driver can end up passing junk statistics to the application.

Instead of relying on the application to initialize the xstats
buffer before calling the xstats_get dev_op, memset xstats
with zeros to avoid returning or displaying incorrect statistics.

Also fixed the buffer starting offset.

Fixes: f55e12f33416 ("net/bnxt: support extended port counters")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 6 ++++--
 drivers/net/bnxt/bnxt_stats.c  | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 22ee725ad..224bc36ed 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3350,5 +3350,6 @@ skip_init:
 
 		bp->hw_rx_port_stats_ext = (void *)
-			(bp->hw_rx_port_stats + sizeof(struct rx_port_stats));
+			((uint8_t *)bp->hw_rx_port_stats +
+			 sizeof(struct rx_port_stats));
 		bp->hw_rx_port_stats_ext_map = bp->hw_rx_port_stats_map +
 			sizeof(struct rx_port_stats);
@@ -3358,5 +3359,6 @@ skip_init:
 		if (bp->hwrm_spec_code < HWRM_SPEC_CODE_1_9_2) {
 			bp->hw_tx_port_stats_ext = (void *)
-			(bp->hw_tx_port_stats + sizeof(struct tx_port_stats));
+				((uint8_t *)bp->hw_tx_port_stats +
+				 sizeof(struct tx_port_stats));
 			bp->hw_tx_port_stats_ext_map =
 				bp->hw_tx_port_stats_map +
diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c
index 77f855d48..73e909691 100644
--- a/drivers/net/bnxt/bnxt_stats.c
+++ b/drivers/net/bnxt/bnxt_stats.c
@@ -415,4 +415,6 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
 	unsigned int stat_count;
 
+	memset(xstats, 0, sizeof(*xstats));
+
 	bnxt_hwrm_port_qstats(bp);
 	bnxt_hwrm_func_qstats_tx_drop(bp, 0xffff, &tx_drop_pkts);
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.046902944 +0100
+++ 0038-net-bnxt-fix-xstats.patch	2019-06-24 16:18:55.070430303 +0100
@@ -1 +1 @@
-From a9586abdbcb3178b94570dd0af3646104f1154cd Mon Sep 17 00:00:00 2001
+From a9aa6bf45945e28a58a570a74d250c8fc099bb4c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a9586abdbcb3178b94570dd0af3646104f1154cd ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index 225487239..ee88e9a16 100644
+index 22ee725ad..224bc36ed 100644
@@ -31 +32 @@
-@@ -3776,5 +3776,6 @@ skip_init:
+@@ -3350,5 +3350,6 @@ skip_init:
@@ -39 +40 @@
-@@ -3784,5 +3785,6 @@ skip_init:
+@@ -3358,5 +3359,6 @@ skip_init:
@@ -48 +49 @@
-index ad2888774..3cd5144ec 100644
+index 77f855d48..73e909691 100644
@@ -51 +52 @@
-@@ -416,4 +416,6 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
+@@ -415,4 +415,6 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,

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

* [dpdk-stable] patch 'net/bnxt: fix interrupt vector initialization' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (36 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix xstats' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix icc build' " Kevin Traynor
                   ` (21 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Naresh Kumar PBS; +Cc: Ajit Khaparde, Lance Richardson, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/133850570fc4dff71d32a8a37ac620d6eed415e4

Thanks.

Kevin Traynor

---
From 133850570fc4dff71d32a8a37ac620d6eed415e4 Mon Sep 17 00:00:00 2001
From: Naresh Kumar PBS <nareshkumar.pbs@broadcom.com>
Date: Sat, 8 Jun 2019 23:22:07 +0400
Subject: [PATCH] net/bnxt: fix interrupt vector initialization

[ upstream commit 55b60de05dc527dcb96bc2f355b606f7951dd6c9 ]

Initialize the vector array when it is valid, thereby
preventing a case were it may be accessed when
the array is unallocated

Fixes: 1fe427fd08ee ("net/bnxt: support enable/disable interrupt")

Signed-off-by: Naresh Kumar PBS <nareshkumar.pbs@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 224bc36ed..f937caa5a 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -373,11 +373,10 @@ static int bnxt_init_chip(struct bnxt *bp)
 			 intr_handle->intr_vec, intr_handle->nb_efd,
 			intr_handle->max_intr);
-	}
-
-	for (queue_id = 0; queue_id < bp->eth_dev->data->nb_rx_queues;
-	     queue_id++) {
-		intr_handle->intr_vec[queue_id] = vec;
-		if (vec < base + intr_handle->nb_efd - 1)
-			vec++;
+		for (queue_id = 0; queue_id < bp->eth_dev->data->nb_rx_queues;
+		     queue_id++) {
+			intr_handle->intr_vec[queue_id] = vec;
+			if (vec < base + intr_handle->nb_efd - 1)
+				vec++;
+		}
 	}
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.096418338 +0100
+++ 0039-net-bnxt-fix-interrupt-vector-initialization.patch	2019-06-24 16:18:55.073430232 +0100
@@ -1 +1 @@
-From 55b60de05dc527dcb96bc2f355b606f7951dd6c9 Mon Sep 17 00:00:00 2001
+From 133850570fc4dff71d32a8a37ac620d6eed415e4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 55b60de05dc527dcb96bc2f355b606f7951dd6c9 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index ee88e9a16..12fb0a76e 100644
+index 224bc36ed..f937caa5a 100644
@@ -24 +25 @@
-@@ -413,11 +413,10 @@ static int bnxt_init_chip(struct bnxt *bp)
+@@ -373,11 +373,10 @@ static int bnxt_init_chip(struct bnxt *bp)

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

* [dpdk-stable] patch 'net/bnxt: fix icc build' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (37 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix interrupt vector initialization' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/ixgbevf: add full link status check option' " Kevin Traynor
                   ` (20 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Naresh Kumar PBS; +Cc: Ajit Khaparde, Lance Richardson, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/4dfbacf9f0be7a9fcacfebe49df81eeb6ebdccd6

Thanks.

Kevin Traynor

---
From 4dfbacf9f0be7a9fcacfebe49df81eeb6ebdccd6 Mon Sep 17 00:00:00 2001
From: Naresh Kumar PBS <nareshkumar.pbs@broadcom.com>
Date: Sat, 8 Jun 2019 23:22:08 +0400
Subject: [PATCH] net/bnxt: fix icc build

[ upstream commit bc77ad80e619637d5e4f9cdfda9fca8d7dc1bef9 ]

Address build errors reported by intel compiler while compiling
on Windows. Instead of typeof() using the actual type in ALLOW_FUNC

Signed-off-by: Naresh Kumar PBS <nareshkumar.pbs@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index f937caa5a..2c18b3732 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3221,5 +3221,5 @@ init_err_disable:
 #define ALLOW_FUNC(x)	\
 	{ \
-		typeof(x) arg = (x); \
+		uint32_t arg = (x); \
 		bp->pf.vf_req_fwd[((arg) >> 5)] &= \
 		~rte_cpu_to_le_32(1 << ((arg) & 0x1f)); \
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.148506258 +0100
+++ 0040-net-bnxt-fix-icc-build.patch	2019-06-24 16:18:55.076430161 +0100
@@ -1 +1 @@
-From bc77ad80e619637d5e4f9cdfda9fca8d7dc1bef9 Mon Sep 17 00:00:00 2001
+From 4dfbacf9f0be7a9fcacfebe49df81eeb6ebdccd6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bc77ad80e619637d5e4f9cdfda9fca8d7dc1bef9 ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -19 +19 @@
-index 12fb0a76e..5f9c096a7 100644
+index f937caa5a..2c18b3732 100644
@@ -22 +22 @@
-@@ -3640,5 +3640,5 @@ int bnxt_alloc_ctx_mem(struct bnxt *bp)
+@@ -3221,5 +3221,5 @@ init_err_disable:

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

* [dpdk-stable] patch 'net/ixgbevf: add full link status check option' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (38 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix icc build' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'bus/pci: fix TOCTOU for sysfs access' " Kevin Traynor
                   ` (19 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Haiyue Wang; +Cc: Scott Daniels, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/6d58d68dc8eab0164fb8b20c3dc3c6ec24d419a8

Thanks.

Kevin Traynor

---
From 6d58d68dc8eab0164fb8b20c3dc3c6ec24d419a8 Mon Sep 17 00:00:00 2001
From: Haiyue Wang <haiyue.wang@intel.com>
Date: Fri, 7 Jun 2019 23:56:21 +0800
Subject: [PATCH] net/ixgbevf: add full link status check option

[ upstream commit bd282035b37e6477805dd26d891ffedaeb9870a5 ]

To get the VF's link status by calling 'rte_eth_link_get_nowait()', the
VF not only check PF's physical link status, but also check the mailbox
running status. And mailbox checking will generate mailbox interrupt in
PF, it will be worse if many VFs are running in the system, the PF will
have to handle many interrrupts.

Normally, checking the PF's physical link status is enough for nowait.
For different scenarios, adding an 'pflink_fullchk' option to control
whether to check the link fully or not.

Fixes: 91546fb62e67 ("net/ixgbevf: fix link state")

Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Scott Daniels <daniels@research.att.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 doc/guides/nics/ixgbe.rst        | 25 +++++++++++++
 drivers/net/ixgbe/ixgbe_ethdev.c | 63 ++++++++++++++++++++++++++++++++
 drivers/net/ixgbe/ixgbe_ethdev.h |  5 +++
 3 files changed, 93 insertions(+)

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 975143f8b..5c3a7e4f2 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -83,4 +83,29 @@ To guarantee the constraint, capabilities in dev_conf.rxmode.offloads will be ch
 fdir_conf->mode will also be checked.
 
+VF Runtime Options
+^^^^^^^^^^^^^^^^^^
+
+The following ``devargs`` options can be enabled at runtime. They must
+be passed as part of EAL arguments. For example,
+
+.. code-block:: console
+
+   testpmd -w af:10.0,pflink_fullchk=1 -- -i
+
+- ``pflink_fullchk`` (default **0**)
+
+  When calling ``rte_eth_link_get_nowait()`` to get VF link status,
+  this option is used to control how VF synchronizes its status with
+  PF's. If set, VF will not only check the PF's physical link status
+  by reading related register, but also check the mailbox status. We
+  call this behavior as fully checking. And checking mailbox will
+  trigger PF's mailbox interrupt generation. If unset, the application
+  can get the VF's link status quickly by just reading the PF's link
+  status register, this will avoid the whole system's mailbox interrupt
+  generation.
+
+  ``rte_eth_link_get()`` will still use the mailbox method regardless
+  of the pflink_fullchk setting.
+
 RX Burst Size
 ^^^^^^^^^^^^^
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index eafad30e4..e432a767e 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -23,4 +23,5 @@
 #include <rte_branch_prediction.h>
 #include <rte_memory.h>
+#include <rte_kvargs.h>
 #include <rte_eal.h>
 #include <rte_alarm.h>
@@ -127,4 +128,11 @@
 #define IXGBE_DMATXCTL_VT_MASK                 0xFFFF0000
 
+#define IXGBEVF_DEVARG_PFLINK_FULLCHK		"pflink_fullchk"
+
+static const char * const ixgbevf_valid_arguments[] = {
+	IXGBEVF_DEVARG_PFLINK_FULLCHK,
+	NULL
+};
+
 static int eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params);
 static int eth_ixgbe_dev_uninit(struct rte_eth_dev *eth_dev);
@@ -1543,4 +1551,43 @@ generate_random_mac_addr(struct ether_addr *mac_addr)
 }
 
+static int
+devarg_handle_int(__rte_unused const char *key, const char *value,
+		  void *extra_args)
+{
+	uint16_t *n = extra_args;
+
+	if (value == NULL || extra_args == NULL)
+		return -EINVAL;
+
+	*n = (uint16_t)strtoul(value, NULL, 0);
+	if (*n == USHRT_MAX && errno == ERANGE)
+		return -1;
+
+	return 0;
+}
+
+static void
+ixgbevf_parse_devargs(struct ixgbe_adapter *adapter,
+		      struct rte_devargs *devargs)
+{
+	struct rte_kvargs *kvlist;
+	uint16_t pflink_fullchk;
+
+	if (devargs == NULL)
+		return;
+
+	kvlist = rte_kvargs_parse(devargs->args, ixgbevf_valid_arguments);
+	if (kvlist == NULL)
+		return;
+
+	if (rte_kvargs_count(kvlist, IXGBEVF_DEVARG_PFLINK_FULLCHK) == 1 &&
+	    rte_kvargs_process(kvlist, IXGBEVF_DEVARG_PFLINK_FULLCHK,
+			       devarg_handle_int, &pflink_fullchk) == 0 &&
+	    pflink_fullchk == 1)
+		adapter->pflink_fullchk = 1;
+
+	rte_kvargs_free(kvlist);
+}
+
 /*
  * Virtual Function device init
@@ -1590,4 +1637,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 	}
 
+	ixgbevf_parse_devargs(eth_dev->data->dev_private,
+			      pci_dev->device.devargs);
+
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 
@@ -3889,4 +3939,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 		   int *link_up, int wait_to_complete)
 {
+	struct ixgbe_adapter *adapter = container_of(hw,
+						     struct ixgbe_adapter, hw);
 	struct ixgbe_mbx_info *mbx = &hw->mbx;
 	struct ixgbe_mac_info *mac = &hw->mac;
@@ -3949,4 +4001,13 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 	}
 
+	if (wait_to_complete == 0 && adapter->pflink_fullchk == 0) {
+		if (*speed == IXGBE_LINK_SPEED_UNKNOWN)
+			mac->get_link_status = true;
+		else
+			mac->get_link_status = false;
+
+		goto out;
+	}
+
 	/* if the read failed it could just be a mailbox collision, best wait
 	 * until we are called again and don't report an error
@@ -8612,4 +8673,6 @@ RTE_PMD_REGISTER_PCI(net_ixgbe_vf, rte_ixgbevf_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(net_ixgbe_vf, pci_id_ixgbevf_map);
 RTE_PMD_REGISTER_KMOD_DEP(net_ixgbe_vf, "* igb_uio | vfio-pci");
+RTE_PMD_REGISTER_PARAM_STRING(net_ixgbe_vf,
+			      IXGBEVF_DEVARG_PFLINK_FULLCHK "=<0|1>");
 
 RTE_INIT(ixgbe_init_log)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index 565c69c9e..5023fa13f 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -494,4 +494,9 @@ struct ixgbe_adapter {
 	/* For RSS reta table update */
 	uint8_t rss_reta_updated;
+
+	/* Used for VF link sync with PF's physical and logical (by checking
+	 * mailbox status) link status.
+	 */
+	uint8_t pflink_fullchk;
 };
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.198974606 +0100
+++ 0041-net-ixgbevf-add-full-link-status-check-option.patch	2019-06-24 16:18:55.085429949 +0100
@@ -1 +1 @@
-From bd282035b37e6477805dd26d891ffedaeb9870a5 Mon Sep 17 00:00:00 2001
+From 6d58d68dc8eab0164fb8b20c3dc3c6ec24d419a8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bd282035b37e6477805dd26d891ffedaeb9870a5 ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -63 +64 @@
-index 12d0405d3..22c5b2c5c 100644
+index eafad30e4..e432a767e 100644
@@ -66 +67 @@
-@@ -24,4 +24,5 @@
+@@ -23,4 +23,5 @@
@@ -72 +73 @@
-@@ -128,4 +129,11 @@
+@@ -127,4 +128,11 @@
@@ -84 +85 @@
-@@ -1551,4 +1559,43 @@ generate_random_mac_addr(struct rte_ether_addr *mac_addr)
+@@ -1543,4 +1551,43 @@ generate_random_mac_addr(struct ether_addr *mac_addr)
@@ -128 +129 @@
-@@ -1599,4 +1646,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -1590,4 +1637,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
@@ -136 +137 @@
-@@ -3909,4 +3959,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
+@@ -3889,4 +3939,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
@@ -143 +144 @@
-@@ -3969,4 +4021,13 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
+@@ -3949,4 +4001,13 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
@@ -157 +158 @@
-@@ -8661,4 +8722,6 @@ RTE_PMD_REGISTER_PCI(net_ixgbe_vf, rte_ixgbevf_pmd);
+@@ -8612,4 +8673,6 @@ RTE_PMD_REGISTER_PCI(net_ixgbe_vf, rte_ixgbevf_pmd);
@@ -165 +166 @@
-index fdad94d58..6e9ed2e10 100644
+index 565c69c9e..5023fa13f 100644
@@ -168 +169 @@
-@@ -499,4 +499,9 @@ struct ixgbe_adapter {
+@@ -494,4 +494,9 @@ struct ixgbe_adapter {

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

* [dpdk-stable] patch 'bus/pci: fix TOCTOU for sysfs access' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (39 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/ixgbevf: add full link status check option' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'doc: fix typo in EAL guide' " Kevin Traynor
                   ` (18 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/8f54619deab26614e850adbf8a60d33f7c5b4736

Thanks.

Kevin Traynor

---
From 8f54619deab26614e850adbf8a60d33f7c5b4736 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Tue, 2 Apr 2019 11:51:05 -0700
Subject: [PATCH] bus/pci: fix TOCTOU for sysfs access

[ upstream commit c530aa78e3747cdd273310eeb9c50603da7f9cb6 ]

Using access followed by open causes a static analysis warning
about Time of check versus Time of use. Also, access() and
open() have different UID permission checks.

This is not a serious problem; but easy to fix by using errno instead.

Coverity issue: 300870
Fixes: 4a928ef9f611 ("bus/pci: enable write combining during mapping")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/pci/linux/pci_uio.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/bus/pci/linux/pci_uio.c b/drivers/bus/pci/linux/pci_uio.c
index 09ecbb7aa..0d1b9aa34 100644
--- a/drivers/bus/pci/linux/pci_uio.c
+++ b/drivers/bus/pci/linux/pci_uio.c
@@ -315,10 +315,9 @@ pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx,
 			loc->function, res_idx);
 
-		if (access(devname, R_OK|W_OK) != -1) {
-			fd = open(devname, O_RDWR);
-			if (fd < 0)
-				RTE_LOG(INFO, EAL, "%s cannot be mapped. "
-					"Fall-back to non prefetchable mode.\n",
-					devname);
+		fd = open(devname, O_RDWR);
+		if (fd < 0 && errno != ENOENT) {
+			RTE_LOG(INFO, EAL, "%s cannot be mapped. "
+				"Fall-back to non prefetchable mode.\n",
+				devname);
 		}
 	}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.257645187 +0100
+++ 0042-bus-pci-fix-TOCTOU-for-sysfs-access.patch	2019-06-24 16:18:55.086429925 +0100
@@ -1 +1 @@
-From c530aa78e3747cdd273310eeb9c50603da7f9cb6 Mon Sep 17 00:00:00 2001
+From 8f54619deab26614e850adbf8a60d33f7c5b4736 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c530aa78e3747cdd273310eeb9c50603da7f9cb6 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 65f4896b9..f240fe4f2 100644
+index 09ecbb7aa..0d1b9aa34 100644
@@ -26 +27 @@
-@@ -316,10 +316,9 @@ pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx,
+@@ -315,10 +315,9 @@ pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx,

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

* [dpdk-stable] patch 'doc: fix typo in EAL guide' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (40 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'bus/pci: fix TOCTOU for sysfs access' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'telemetry: fix memory leak' " Kevin Traynor
                   ` (17 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/61f8856ac161dd35a5c947cd27ce004350d978b8

Thanks.

Kevin Traynor

---
From 61f8856ac161dd35a5c947cd27ce004350d978b8 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Sun, 16 Jun 2019 17:32:06 +0300
Subject: [PATCH] doc: fix typo in EAL guide

[ upstream commit 87d2f3c576e73ce7714d813436bbf68e3329b87a ]

The EAL init diagram had a typo for "lauch"
instead of "launch".

Fixes: fc1f2750a3ec ("doc: programmers guide")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/prog_guide/img/linuxapp_launch.svg | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/guides/prog_guide/img/linuxapp_launch.svg b/doc/guides/prog_guide/img/linuxapp_launch.svg
index af685897d..c2bd34e08 100644
--- a/doc/guides/prog_guide/img/linuxapp_launch.svg
+++ b/doc/guides/prog_guide/img/linuxapp_launch.svg
@@ -660,5 +660,5 @@
          id="tspan11522"
          x="69.303398"
-         y="858.42419">rte_eal_remote_lauch(app)</tspan></text>
+         y="858.42419">rte_eal_remote_launch(app)</tspan></text>
     <path
        style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
@@ -693,5 +693,5 @@
          id="tspan11522-1"
          x="87.641663"
-         y="644.07324">rte_eal_remote_lauch(</tspan><tspan
+         y="644.07324">rte_eal_remote_launch(</tspan><tspan
          sodipodi:role="line"
          x="87.641663"
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.305677654 +0100
+++ 0043-doc-fix-typo-in-EAL-guide.patch	2019-06-24 16:18:55.087429902 +0100
@@ -1 +1 @@
-From 87d2f3c576e73ce7714d813436bbf68e3329b87a Mon Sep 17 00:00:00 2001
+From 61f8856ac161dd35a5c947cd27ce004350d978b8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 87d2f3c576e73ce7714d813436bbf68e3329b87a ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 3af560554..835ed774e 100644
+index af685897d..c2bd34e08 100644

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

* [dpdk-stable] patch 'telemetry: fix memory leak' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (41 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'doc: fix typo in EAL guide' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: enable chained multicast on all EF10 cards' " Kevin Traynor
                   ` (16 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Reshma Pattan; +Cc: Kevin Laatz, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/e3148f5708756722b6bcd4125a77f080f1593247

Thanks.

Kevin Traynor

---
From e3148f5708756722b6bcd4125a77f080f1593247 Mon Sep 17 00:00:00 2001
From: Reshma Pattan <reshma.pattan@intel.com>
Date: Wed, 29 May 2019 13:43:17 +0100
Subject: [PATCH] telemetry: fix memory leak

[ upstream commit 05682bddb603fad361836a3045328a0079601469 ]

Free the `values` pointer before returning
from rte_telemetry_command_ports_all_stat_values()
to avoid memory leak.

Fixes: c12cefa379 ("telemetry: fix mapping of statistics")

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Kevin Laatz <kevin.laatz@intel.com>
---
 lib/librte_telemetry/rte_telemetry_parser.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/librte_telemetry/rte_telemetry_parser.c b/lib/librte_telemetry/rte_telemetry_parser.c
index 9bc16eef4..e9297021a 100644
--- a/lib/librte_telemetry/rte_telemetry_parser.c
+++ b/lib/librte_telemetry/rte_telemetry_parser.c
@@ -343,4 +343,5 @@ rte_telemetry_command_ports_all_stat_values(struct telemetry_impl *telemetry,
 	}
 
+	free(values);
 	return 0;
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.352322936 +0100
+++ 0044-telemetry-fix-memory-leak.patch	2019-06-24 16:18:55.088429878 +0100
@@ -1 +1 @@
-From 05682bddb603fad361836a3045328a0079601469 Mon Sep 17 00:00:00 2001
+From e3148f5708756722b6bcd4125a77f080f1593247 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 05682bddb603fad361836a3045328a0079601469 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org

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

* [dpdk-stable] patch 'net/sfc/base: enable chained multicast on all EF10 cards' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (42 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'telemetry: fix memory leak' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix signed/unsigned mismatch' " Kevin Traynor
                   ` (15 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Gautam Dawar; +Cc: Andrew Rybchenko, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/177260deb95d3667737dea60e2e836353e879c83

Thanks.

Kevin Traynor

---
From 177260deb95d3667737dea60e2e836353e879c83 Mon Sep 17 00:00:00 2001
From: Gautam Dawar <gdawar@solarflare.com>
Date: Mon, 10 Jun 2019 08:38:16 +0100
Subject: [PATCH] net/sfc/base: enable chained multicast on all EF10 cards

[ upstream commit 9b1d5e45c0a116209d6e35a5ff07618ec7673070 ]

Set WORKAROUND_BUG26807 which does the job.

Fix the misunderstanding in the Medford code: i.e. the workaround is
always supported by firmware, but the driver still needs to enable it.
Also, as it now applies to all EF10 controllers, the implementation is
moved to EF10 common place.

Fixes: 94190e3543bf ("net/sfc/base: import SFN8xxx family support")
Fixes: 2b38e7b7b7e1 ("net/sfc/base: add Medford2 support to NIC module")

Signed-off-by: Gautam Dawar <gdawar@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 drivers/net/sfc/base/ef10_nic.c     | 57 ++++++++++++++++++++++++++++-
 drivers/net/sfc/base/hunt_nic.c     | 41 +--------------------
 drivers/net/sfc/base/medford2_nic.c |  3 --
 drivers/net/sfc/base/medford_nic.c  |  3 --
 4 files changed, 58 insertions(+), 46 deletions(-)

diff --git a/drivers/net/sfc/base/ef10_nic.c b/drivers/net/sfc/base/ef10_nic.c
index 50e23b7d4..540121756 100644
--- a/drivers/net/sfc/base/ef10_nic.c
+++ b/drivers/net/sfc/base/ef10_nic.c
@@ -1749,4 +1749,54 @@ fail1:
 }
 
+static	__checkReturn	efx_rc_t
+ef10_set_workaround_bug26807(
+	__in		efx_nic_t *enp)
+{
+	efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
+	uint32_t flags;
+	efx_rc_t rc;
+
+	/*
+	 * If the bug26807 workaround is enabled, then firmware has enabled
+	 * support for chained multicast filters. Firmware will reset (FLR)
+	 * functions which have filters in the hardware filter table when the
+	 * workaround is enabled/disabled.
+	 *
+	 * We must recheck if the workaround is enabled after inserting the
+	 * first hardware filter, in case it has been changed since this check.
+	 */
+	rc = efx_mcdi_set_workaround(enp, MC_CMD_WORKAROUND_BUG26807,
+	    B_TRUE, &flags);
+	if (rc == 0) {
+		encp->enc_bug26807_workaround = B_TRUE;
+		if (flags & (1 << MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_LBN)) {
+			/*
+			 * Other functions had installed filters before the
+			 * workaround was enabled, and they have been reset
+			 * by firmware.
+			 */
+			EFSYS_PROBE(bug26807_workaround_flr_done);
+			/* FIXME: bump MC warm boot count ? */
+		}
+	} else if (rc == EACCES) {
+		/*
+		 * Unprivileged functions cannot enable the workaround in older
+		 * firmware.
+		 */
+		encp->enc_bug26807_workaround = B_FALSE;
+	} else if ((rc == ENOTSUP) || (rc == ENOENT)) {
+		encp->enc_bug26807_workaround = B_FALSE;
+	} else {
+		goto fail1;
+	}
+
+	return (0);
+
+fail1:
+	EFSYS_PROBE1(fail1, efx_rc_t, rc);
+
+	return (rc);
+}
+
 static	__checkReturn	efx_rc_t
 ef10_nic_board_cfg(
@@ -1907,11 +1957,16 @@ ef10_nic_board_cfg(
 	encp->enc_privilege_mask = mask;
 
+	if ((rc = ef10_set_workaround_bug26807(enp)) != 0)
+		goto fail11;
+
 	/* Get remaining controller-specific board config */
 	if ((rc = enop->eno_board_cfg(enp)) != 0)
 		if (rc != EACCES)
-			goto fail11;
+			goto fail12;
 
 	return (0);
 
+fail12:
+	EFSYS_PROBE(fail12);
 fail11:
 	EFSYS_PROBE(fail11);
diff --git a/drivers/net/sfc/base/hunt_nic.c b/drivers/net/sfc/base/hunt_nic.c
index ca30e90f7..abff18ebc 100644
--- a/drivers/net/sfc/base/hunt_nic.c
+++ b/drivers/net/sfc/base/hunt_nic.c
@@ -73,5 +73,4 @@ hunt_board_cfg(
 	efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
 	efx_port_t *epp = &(enp->en_port);
-	uint32_t flags;
 	uint32_t sysclk, dpcpu_clk;
 	uint32_t bandwidth;
@@ -131,41 +130,7 @@ hunt_board_cfg(
 	}
 
-	/*
-	 * If the bug26807 workaround is enabled, then firmware has enabled
-	 * support for chained multicast filters. Firmware will reset (FLR)
-	 * functions which have filters in the hardware filter table when the
-	 * workaround is enabled/disabled.
-	 *
-	 * We must recheck if the workaround is enabled after inserting the
-	 * first hardware filter, in case it has been changed since this check.
-	 */
-	rc = efx_mcdi_set_workaround(enp, MC_CMD_WORKAROUND_BUG26807,
-	    B_TRUE, &flags);
-	if (rc == 0) {
-		encp->enc_bug26807_workaround = B_TRUE;
-		if (flags & (1 << MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_LBN)) {
-			/*
-			 * Other functions had installed filters before the
-			 * workaround was enabled, and they have been reset
-			 * by firmware.
-			 */
-			EFSYS_PROBE(bug26807_workaround_flr_done);
-			/* FIXME: bump MC warm boot count ? */
-		}
-	} else if (rc == EACCES) {
-		/*
-		 * Unprivileged functions cannot enable the workaround in older
-		 * firmware.
-		 */
-		encp->enc_bug26807_workaround = B_FALSE;
-	} else if ((rc == ENOTSUP) || (rc == ENOENT)) {
-		encp->enc_bug26807_workaround = B_FALSE;
-	} else {
-		goto fail3;
-	}
-
 	/* Get clock frequencies (in MHz). */
 	if ((rc = efx_mcdi_get_clock(enp, &sysclk, &dpcpu_clk)) != 0)
-		goto fail4;
+		goto fail3;
 
 	/*
@@ -203,5 +168,5 @@ hunt_board_cfg(
 
 	if ((rc = hunt_nic_get_required_pcie_bandwidth(enp, &bandwidth)) != 0)
-		goto fail5;
+		goto fail4;
 	encp->enc_required_pcie_bandwidth_mbps = bandwidth;
 
@@ -211,6 +176,4 @@ hunt_board_cfg(
 	return (0);
 
-fail5:
-	EFSYS_PROBE(fail5);
 fail4:
 	EFSYS_PROBE(fail4);
diff --git a/drivers/net/sfc/base/medford2_nic.c b/drivers/net/sfc/base/medford2_nic.c
index 6bc1e87cc..0012350b9 100644
--- a/drivers/net/sfc/base/medford2_nic.c
+++ b/drivers/net/sfc/base/medford2_nic.c
@@ -70,7 +70,4 @@ medford2_board_cfg(
 	}
 
-	/* Chained multicast is always enabled on Medford2 */
-	encp->enc_bug26807_workaround = B_TRUE;
-
 	/*
 	 * If the bug61265 workaround is enabled, then interrupt holdoff timers
diff --git a/drivers/net/sfc/base/medford_nic.c b/drivers/net/sfc/base/medford_nic.c
index bfe01ca93..be0814461 100644
--- a/drivers/net/sfc/base/medford_nic.c
+++ b/drivers/net/sfc/base/medford_nic.c
@@ -68,7 +68,4 @@ medford_board_cfg(
 	}
 
-	/* Chained multicast is always enabled on Medford */
-	encp->enc_bug26807_workaround = B_TRUE;
-
 	/*
 	 * If the bug61265 workaround is enabled, then interrupt holdoff timers
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.398218672 +0100
+++ 0045-net-sfc-base-enable-chained-multicast-on-all-EF10-ca.patch	2019-06-24 16:18:55.091429807 +0100
@@ -1 +1 @@
-From 9b1d5e45c0a116209d6e35a5ff07618ec7673070 Mon Sep 17 00:00:00 2001
+From 177260deb95d3667737dea60e2e836353e879c83 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9b1d5e45c0a116209d6e35a5ff07618ec7673070 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
-index e5e84690e..1d7e6d8c8 100644
+index 50e23b7d4..540121756 100644
@@ -30 +31 @@
-@@ -1753,4 +1753,54 @@ fail1:
+@@ -1749,4 +1749,54 @@ fail1:
@@ -85 +86 @@
-@@ -1911,11 +1961,16 @@ ef10_nic_board_cfg(
+@@ -1907,11 +1957,16 @@ ef10_nic_board_cfg(
@@ -104 +105 @@
-index 054d4f432..1e2b075ff 100644
+index ca30e90f7..abff18ebc 100644
@@ -156 +157 @@
-@@ -216,5 +181,5 @@ hunt_board_cfg(
+@@ -203,5 +168,5 @@ hunt_board_cfg(
@@ -163 +164 @@
-@@ -224,6 +189,4 @@ hunt_board_cfg(
+@@ -211,6 +176,4 @@ hunt_board_cfg(
@@ -171 +172 @@
-index 16621d190..c0d4c13b0 100644
+index 6bc1e87cc..0012350b9 100644
@@ -183 +184 @@
-index 01a346267..c2a0054c2 100644
+index bfe01ca93..be0814461 100644

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

* [dpdk-stable] patch 'net/sfc/base: fix signed/unsigned mismatch' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (43 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: enable chained multicast on all EF10 cards' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix shift by more bits than field width' " Kevin Traynor
                   ` (14 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Andrew Lee; +Cc: Andrew Rybchenko, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/e585af43adbd456055fe056c683a9c1206863c24

Thanks.

Kevin Traynor

---
From e585af43adbd456055fe056c683a9c1206863c24 Mon Sep 17 00:00:00 2001
From: Andrew Lee <alee@solarflare.com>
Date: Mon, 10 Jun 2019 08:38:17 +0100
Subject: [PATCH] net/sfc/base: fix signed/unsigned mismatch

[ upstream commit b69259cd152055bc5ace20929a3719183941f695 ]

Use UINT32_MAX instead of assigning -1 to a uint32_t variable to
resolve "conversion from 'int' to 'uint32_t', signed/unsigned mismatch"
errors produced by the Visual Studio 2017 toolchain [with the default
/W4 /WX C compiler options which set warning level 4 and treat warnings
as errors].

Fixes: 107cf1d792cb ("net/sfc/base: move limits config to ef10 NIC board config")

Signed-off-by: Andrew Lee <alee@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 drivers/net/sfc/base/ef10_nic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/sfc/base/ef10_nic.c b/drivers/net/sfc/base/ef10_nic.c
index 540121756..60b0ba145 100644
--- a/drivers/net/sfc/base/ef10_nic.c
+++ b/drivers/net/sfc/base/ef10_nic.c
@@ -1933,5 +1933,5 @@ ef10_nic_board_cfg(
 	encp->enc_txq_limit = EFX_TXQ_LIMIT_TARGET;
 
-	encp->enc_buftbl_limit = 0xFFFFFFFF;
+	encp->enc_buftbl_limit = UINT32_MAX;
 
 	/* Get interrupt vector limits */
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.449039478 +0100
+++ 0046-net-sfc-base-fix-signed-unsigned-mismatch.patch	2019-06-24 16:18:55.093429760 +0100
@@ -1 +1 @@
-From b69259cd152055bc5ace20929a3719183941f695 Mon Sep 17 00:00:00 2001
+From e585af43adbd456055fe056c683a9c1206863c24 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b69259cd152055bc5ace20929a3719183941f695 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 1d7e6d8c8..052b4ff04 100644
+index 540121756..60b0ba145 100644
@@ -25 +26 @@
-@@ -1937,5 +1937,5 @@ ef10_nic_board_cfg(
+@@ -1933,5 +1933,5 @@ ef10_nic_board_cfg(

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

* [dpdk-stable] patch 'net/sfc/base: fix shift by more bits than field width' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (44 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix signed/unsigned mismatch' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/netvsc: initialize VF spinlock' " Kevin Traynor
                   ` (13 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Mark Spender; +Cc: Andrew Rybchenko, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/97de70299017f322c67427625b544817bd187c4d

Thanks.

Kevin Traynor

---
From 97de70299017f322c67427625b544817bd187c4d Mon Sep 17 00:00:00 2001
From: Mark Spender <mspender@solarflare.com>
Date: Mon, 10 Jun 2019 08:38:18 +0100
Subject: [PATCH] net/sfc/base: fix shift by more bits than field width

[ upstream commit 1dcd3a98954075f3218d9bf1d00eaad250f92833 ]

This was probably an oversight when support for multiple sensor pages
was added.

Despite being undefined behaviour in C, it probably worked on Intel
x32/x64 as on them bit shift operations wrap round.

Fixes: dfb3b1ce15f6 ("net/sfc/base: import monitors access via MCDI")

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 drivers/net/sfc/base/mcdi_mon.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/sfc/base/mcdi_mon.c b/drivers/net/sfc/base/mcdi_mon.c
index b53de0d68..d0247dc44 100644
--- a/drivers/net/sfc/base/mcdi_mon.c
+++ b/drivers/net/sfc/base/mcdi_mon.c
@@ -74,5 +74,6 @@ mcdi_mon_decode_stats(
 		}
 
-		if (~(sensor_mask[page]) & (1U << sensor))
+		if (~(sensor_mask[page]) &
+		    (1U << (sensor % (sizeof (sensor_mask[page]) * 8))))
 			continue;
 		/* This sensor not in DMA buffer */
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.497081154 +0100
+++ 0047-net-sfc-base-fix-shift-by-more-bits-than-field-width.patch	2019-06-24 16:18:55.094429736 +0100
@@ -1 +1 @@
-From 1dcd3a98954075f3218d9bf1d00eaad250f92833 Mon Sep 17 00:00:00 2001
+From 97de70299017f322c67427625b544817bd187c4d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1dcd3a98954075f3218d9bf1d00eaad250f92833 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org

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

* [dpdk-stable] patch 'net/netvsc: initialize VF spinlock' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (45 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix shift by more bits than field width' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: fix dropped packets statistics name' " Kevin Traynor
                   ` (12 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/1b44d282d072c319047039a3932a36915acb202d

Thanks.

Kevin Traynor

---
From 1b44d282d072c319047039a3932a36915acb202d Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <sthemmin@microsoft.com>
Date: Thu, 6 Jun 2019 09:15:10 -0700
Subject: [PATCH] net/netvsc: initialize VF spinlock

[ upstream commit 5e811a1a39e650aafc931306b0042837baac0450 ]

The VF spinlock was never initialized. It works because it is
in zmalloc'd memory and an unlocked lock on x86 is 0.
But for good practice, all spinlock's should be initialized.

Fixes: dc7680e8597c ("net/netvsc: support integrated VF")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
 drivers/net/netvsc/hn_ethdev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c
index fad209f21..66e158c72 100644
--- a/drivers/net/netvsc/hn_ethdev.c
+++ b/drivers/net/netvsc/hn_ethdev.c
@@ -734,4 +734,5 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)
 	hv->latency = HN_CHAN_LATENCY_NS;
 	hv->max_queues = 1;
+	rte_spinlock_init(&hv->vf_lock);
 	hv->vf_port = HN_INVALID_PORT;
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.545365934 +0100
+++ 0048-net-netvsc-initialize-VF-spinlock.patch	2019-06-24 16:18:55.094429736 +0100
@@ -1 +1 @@
-From 5e811a1a39e650aafc931306b0042837baac0450 Mon Sep 17 00:00:00 2001
+From 1b44d282d072c319047039a3932a36915acb202d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5e811a1a39e650aafc931306b0042837baac0450 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 9e7cf2df5..70352f0e1 100644
+index fad209f21..66e158c72 100644
@@ -22 +23 @@
-@@ -740,4 +740,5 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)
+@@ -734,4 +734,5 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)

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

* [dpdk-stable] patch 'net/i40e: fix dropped packets statistics name' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (46 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/netvsc: initialize VF spinlock' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: remove empty queue stats mapping set devops' " Kevin Traynor
                   ` (11 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: David Marchand; +Cc: Eelco Chaudron, Beilei Xing, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/4d4cf62ff06d4eda0451d84140b4170b327708f0

Thanks.

Kevin Traynor

---
From 4d4cf62ff06d4eda0451d84140b4170b327708f0 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Mon, 3 Jun 2019 10:31:27 +0200
Subject: [PATCH] net/i40e: fix dropped packets statistics name

[ upstream commit 61e5456cdf67ecf6032c5dbf88caf88213021a89 ]

i40e and i40evf currently use two different names for the statistic on
dropped packets on the rx and tx sides.
Let's prefer i40evf so that all statistics are suffixed with _packets.

This also avoids a statistic name conflict in OVS.

Fixes: f4a91c38b4ad ("i40e: add extended stats")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index d93cb00d4..74f111e64 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -525,5 +525,5 @@ static const struct rte_i40e_xstats_name_off rte_i40e_stats_strings[] = {
 	{"rx_multicast_packets", offsetof(struct i40e_eth_stats, rx_multicast)},
 	{"rx_broadcast_packets", offsetof(struct i40e_eth_stats, rx_broadcast)},
-	{"rx_dropped", offsetof(struct i40e_eth_stats, rx_discards)},
+	{"rx_dropped_packets", offsetof(struct i40e_eth_stats, rx_discards)},
 	{"rx_unknown_protocol_packets", offsetof(struct i40e_eth_stats,
 		rx_unknown_protocol)},
@@ -531,5 +531,5 @@ static const struct rte_i40e_xstats_name_off rte_i40e_stats_strings[] = {
 	{"tx_multicast_packets", offsetof(struct i40e_eth_stats, tx_multicast)},
 	{"tx_broadcast_packets", offsetof(struct i40e_eth_stats, tx_broadcast)},
-	{"tx_dropped", offsetof(struct i40e_eth_stats, tx_discards)},
+	{"tx_dropped_packets", offsetof(struct i40e_eth_stats, tx_discards)},
 };
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.591863923 +0100
+++ 0049-net-i40e-fix-dropped-packets-statistics-name.patch	2019-06-24 16:18:55.107429430 +0100
@@ -1 +1 @@
-From 61e5456cdf67ecf6032c5dbf88caf88213021a89 Mon Sep 17 00:00:00 2001
+From 4d4cf62ff06d4eda0451d84140b4170b327708f0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 61e5456cdf67ecf6032c5dbf88caf88213021a89 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index a8688e0c3..bd8a96952 100644
+index d93cb00d4..74f111e64 100644
@@ -26 +27 @@
-@@ -527,5 +527,5 @@ static const struct rte_i40e_xstats_name_off rte_i40e_stats_strings[] = {
+@@ -525,5 +525,5 @@ static const struct rte_i40e_xstats_name_off rte_i40e_stats_strings[] = {
@@ -33 +34 @@
-@@ -533,5 +533,5 @@ static const struct rte_i40e_xstats_name_off rte_i40e_stats_strings[] = {
+@@ -531,5 +531,5 @@ static const struct rte_i40e_xstats_name_off rte_i40e_stats_strings[] = {

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

* [dpdk-stable] patch 'net/i40e: remove empty queue stats mapping set devops' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (47 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: fix dropped packets statistics name' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix queue memory leak on error' " Kevin Traynor
                   ` (10 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/131c8023818db00b93c1da233357df74006320f1

Thanks.

Kevin Traynor

---
From 131c8023818db00b93c1da233357df74006320f1 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Tue, 28 May 2019 12:43:18 -0700
Subject: [PATCH] net/i40e: remove empty queue stats mapping set devops

[ upstream commit fe1d9ecb304e3e869acbbac00bc855fd25751b1b ]

This driver was inserting its own stub for queue_stats_mapping which
did nothing but cause this device to return a different errno
than every other device driver.  All devices that don't implement
queue stats mapping should return the same error.

Maybe the plan originally was to implement something, if that
ever happens, just put in the right code.

Fixes: 4861cde46116 ("i40e: new poll mode driver")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/i40e/i40e_ethdev.c | 16 ----------------
 1 file changed, 16 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 74f111e64..d419c0cf0 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -239,8 +239,4 @@ static int i40e_dev_xstats_get_names(struct rte_eth_dev *dev,
 				     unsigned limit);
 static void i40e_dev_stats_reset(struct rte_eth_dev *dev);
-static int i40e_dev_queue_stats_mapping_set(struct rte_eth_dev *dev,
-					    uint16_t queue_id,
-					    uint8_t stat_idx,
-					    uint8_t is_rx);
 static int i40e_fw_version_get(struct rte_eth_dev *dev,
 				char *fw_version, size_t fw_size);
@@ -456,5 +452,4 @@ static const struct eth_dev_ops i40e_eth_dev_ops = {
 	.stats_reset                  = i40e_dev_stats_reset,
 	.xstats_reset                 = i40e_dev_stats_reset,
-	.queue_stats_mapping_set      = i40e_dev_queue_stats_mapping_set,
 	.fw_version_get               = i40e_fw_version_get,
 	.dev_infos_get                = i40e_dev_info_get,
@@ -3429,15 +3424,4 @@ i40e_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
 }
 
-static int
-i40e_dev_queue_stats_mapping_set(__rte_unused struct rte_eth_dev *dev,
-				 __rte_unused uint16_t queue_id,
-				 __rte_unused uint8_t stat_idx,
-				 __rte_unused uint8_t is_rx)
-{
-	PMD_INIT_FUNC_TRACE();
-
-	return -ENOSYS;
-}
-
 static int
 i40e_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.650031723 +0100
+++ 0050-net-i40e-remove-empty-queue-stats-mapping-set-devops.patch	2019-06-24 16:18:55.119429146 +0100
@@ -1 +1 @@
-From fe1d9ecb304e3e869acbbac00bc855fd25751b1b Mon Sep 17 00:00:00 2001
+From 131c8023818db00b93c1da233357df74006320f1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fe1d9ecb304e3e869acbbac00bc855fd25751b1b ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index bd8a96952..33644557b 100644
+index 74f111e64..d419c0cf0 100644
@@ -27 +28 @@
-@@ -238,8 +238,4 @@ static int i40e_dev_xstats_get_names(struct rte_eth_dev *dev,
+@@ -239,8 +239,4 @@ static int i40e_dev_xstats_get_names(struct rte_eth_dev *dev,
@@ -36 +37 @@
-@@ -458,5 +454,4 @@ static const struct eth_dev_ops i40e_eth_dev_ops = {
+@@ -456,5 +452,4 @@ static const struct eth_dev_ops i40e_eth_dev_ops = {
@@ -42 +43 @@
-@@ -3432,15 +3427,4 @@ i40e_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
+@@ -3429,15 +3424,4 @@ i40e_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,

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

* [dpdk-stable] patch 'net/virtio: fix queue memory leak on error' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (48 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: remove empty queue stats mapping set devops' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap port IO for legacy device' " Kevin Traynor
                   ` (9 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/5f34f2eebc67d394837366f6f6272668deb5a84d

Thanks.

Kevin Traynor

---
From 5f34f2eebc67d394837366f6f6272668deb5a84d Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 5 Jun 2019 17:43:38 +0800
Subject: [PATCH] net/virtio: fix queue memory leak on error

[ upstream commit 2b38151f745a30ebe653a202563bf8539740633f ]

We should free queues when we failed to initialize the virtio device.

Fixes: 26b683b4f7d0 ("net/virtio: setup Rx queue interrupts")

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_ethdev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index f938b7cef..e1c97a481 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1594,4 +1594,5 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
 		if (virtio_configure_intr(eth_dev) < 0) {
 			PMD_INIT_LOG(ERR, "failed to configure interrupt");
+			virtio_free_queues(hw);
 			return -1;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.710214666 +0100
+++ 0051-net-virtio-fix-queue-memory-leak-on-error.patch	2019-06-24 16:18:55.121429099 +0100
@@ -1 +1 @@
-From 2b38151f745a30ebe653a202563bf8539740633f Mon Sep 17 00:00:00 2001
+From 5f34f2eebc67d394837366f6f6272668deb5a84d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2b38151f745a30ebe653a202563bf8539740633f ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index c4570bbf8..df3a218a8 100644
+index f938b7cef..e1c97a481 100644
@@ -21 +22 @@
-@@ -1753,4 +1753,5 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
+@@ -1594,4 +1594,5 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)

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

* [dpdk-stable] patch 'net/virtio: unmap port IO for legacy device' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (49 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix queue memory leak on error' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap device on initialization error' " Kevin Traynor
                   ` (8 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/635ccd415fee13558bb92c6c9ac7c71a9e9ce8fe

Thanks.

Kevin Traynor

---
From 635ccd415fee13558bb92c6c9ac7c71a9e9ce8fe Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 5 Jun 2019 17:43:39 +0800
Subject: [PATCH] net/virtio: unmap port IO for legacy device

[ upstream commit 535f8a109a655552b30a7cead6ffdcba3e73db29 ]

For legacy devices, we should also unmap the port IO
resource on device removal.

Fixes: b8f04520ad71 ("virtio: use PCI ioport API")

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_ethdev.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index e1c97a481..d8724566a 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1717,4 +1717,6 @@ static int
 eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
 {
+	struct virtio_hw *hw = eth_dev->data->dev_private;
+
 	PMD_INIT_FUNC_TRACE();
 
@@ -1729,6 +1731,9 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
 	eth_dev->rx_pkt_burst = NULL;
 
-	if (eth_dev->device)
+	if (eth_dev->device) {
 		rte_pci_unmap_device(RTE_ETH_DEV_TO_PCI(eth_dev));
+		if (!hw->modern)
+			rte_pci_ioport_unmap(VTPCI_IO(hw));
+	}
 
 	PMD_INIT_LOG(DEBUG, "dev_uninit completed");
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.759237308 +0100
+++ 0052-net-virtio-unmap-port-IO-for-legacy-device.patch	2019-06-24 16:18:55.123429052 +0100
@@ -1 +1 @@
-From 535f8a109a655552b30a7cead6ffdcba3e73db29 Mon Sep 17 00:00:00 2001
+From 635ccd415fee13558bb92c6c9ac7c71a9e9ce8fe Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 535f8a109a655552b30a7cead6ffdcba3e73db29 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index df3a218a8..a2cedcc87 100644
+index e1c97a481..d8724566a 100644
@@ -22 +23 @@
-@@ -1877,4 +1877,6 @@ static int
+@@ -1717,4 +1717,6 @@ static int
@@ -29 +30 @@
-@@ -1889,6 +1891,9 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
+@@ -1729,6 +1731,9 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)

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

* [dpdk-stable] patch 'net/virtio: unmap device on initialization error' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (50 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap port IO for legacy device' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vdpa: remove trace of legacy linuxapp' " Kevin Traynor
                   ` (7 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/eeabe2d6693ded6af89d6dc3499b2abcb9f88b61

Thanks.

Kevin Traynor

---
From eeabe2d6693ded6af89d6dc3499b2abcb9f88b61 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 5 Jun 2019 17:43:40 +0800
Subject: [PATCH] net/virtio: unmap device on initialization error

[ upstream commit 3484c8d859b48f41c8958614736cc64f0e203f4c ]

We should unmap the device when we failed to initialize the device.

Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_ethdev.c | 12 +++++++++---
 drivers/net/virtio/virtio_pci.c    |  1 +
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index d8724566a..74076b9a9 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1698,5 +1698,5 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
 		ret = vtpci_init(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
 		if (ret)
-			goto out;
+			goto err_vtpci_init;
 	}
 
@@ -1704,9 +1704,15 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
 	ret = virtio_init_device(eth_dev, VIRTIO_PMD_DEFAULT_GUEST_FEATURES);
 	if (ret < 0)
-		goto out;
+		goto err_virtio_init;
 
 	return 0;
 
-out:
+err_virtio_init:
+	if (!hw->virtio_user_dev) {
+		rte_pci_unmap_device(RTE_ETH_DEV_TO_PCI(eth_dev));
+		if (!hw->modern)
+			rte_pci_ioport_unmap(VTPCI_IO(hw));
+	}
+err_vtpci_init:
 	rte_free(eth_dev->data->mac_addrs);
 	eth_dev->data->mac_addrs = NULL;
diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
index c8883c32e..6e984ea94 100644
--- a/drivers/net/virtio/virtio_pci.c
+++ b/drivers/net/virtio/virtio_pci.c
@@ -679,4 +679,5 @@ vtpci_init(struct rte_pci_device *dev, struct virtio_hw *hw)
 	PMD_INIT_LOG(INFO, "trying with legacy virtio pci.");
 	if (rte_pci_ioport_map(dev, 0, VTPCI_IO(hw)) < 0) {
+		rte_pci_unmap_device(dev);
 		if (dev->kdrv == RTE_KDRV_UNKNOWN &&
 		    (!dev->device.devargs ||
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.810995943 +0100
+++ 0053-net-virtio-unmap-device-on-initialization-error.patch	2019-06-24 16:18:55.125429005 +0100
@@ -1 +1 @@
-From 3484c8d859b48f41c8958614736cc64f0e203f4c Mon Sep 17 00:00:00 2001
+From eeabe2d6693ded6af89d6dc3499b2abcb9f88b61 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3484c8d859b48f41c8958614736cc64f0e203f4c ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index a2cedcc87..46d2e4ac6 100644
+index d8724566a..74076b9a9 100644
@@ -22 +23 @@
-@@ -1858,5 +1858,5 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
+@@ -1698,5 +1698,5 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
@@ -29 +30 @@
-@@ -1864,9 +1864,15 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
+@@ -1704,9 +1704,15 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
@@ -48 +49 @@
-index adc02f96a..4468e89cb 100644
+index c8883c32e..6e984ea94 100644

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

* [dpdk-stable] patch 'examples/vdpa: remove trace of legacy linuxapp' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (51 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap device on initialization error' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: add Tx preparation' " Kevin Traynor
                   ` (6 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: David Marchand; +Cc: Tiwei Bie, Xiaolong Ye, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/6fc0f6ec7b6bb2738964e81c6420328c998d039d

Thanks.

Kevin Traynor

---
From 6fc0f6ec7b6bb2738964e81c6420328c998d039d Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Mon, 17 Jun 2019 09:54:42 +0200
Subject: [PATCH] examples/vdpa: remove trace of legacy linuxapp

[ upstream commit 0e34bced7829dc9cb74e0af81f3f12058380b352 ]

This check on Linux environment has been added at a time when we already
had switched to using the boolean RTE_EXEC_ENV_LINUXAPP.
It was then missed when converting to RTE_EXEC_ENV_LINUX.

Fixes: edbed86d1cc3 ("examples/vdpa: introduce a new sample for vDPA")
Fixes: 742bde12f3bd ("build/linux: rename macro from LINUXAPP to LINUX")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
 examples/vdpa/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/vdpa/Makefile b/examples/vdpa/Makefile
index 42672a2bc..d3321ef94 100644
--- a/examples/vdpa/Makefile
+++ b/examples/vdpa/Makefile
@@ -11,5 +11,5 @@ RTE_TARGET ?= x86_64-native-linuxapp-gcc
 include $(RTE_SDK)/mk/rte.vars.mk
 
-ifneq ($(CONFIG_RTE_EXEC_ENV),"linuxapp")
+ifneq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP),y)
 $(info This application can only operate in a linuxapp environment, \
 please change the definition of the RTE_TARGET environment variable)
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.860032820 +0100
+++ 0054-examples-vdpa-remove-trace-of-legacy-linuxapp.patch	2019-06-24 16:18:55.125429005 +0100
@@ -1 +1 @@
-From 0e34bced7829dc9cb74e0af81f3f12058380b352 Mon Sep 17 00:00:00 2001
+From 6fc0f6ec7b6bb2738964e81c6420328c998d039d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0e34bced7829dc9cb74e0af81f3f12058380b352 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 9d16d8eb5..ab2bbdf76 100644
+index 42672a2bc..d3321ef94 100644
@@ -25 +26 @@
-@@ -11,5 +11,5 @@ RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.conf
+@@ -11,5 +11,5 @@ RTE_TARGET ?= x86_64-native-linuxapp-gcc
@@ -29,2 +30,2 @@
-+ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
- $(info This application can only operate in a linux environment, \
++ifneq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP),y)
+ $(info This application can only operate in a linuxapp environment, \

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

* [dpdk-stable] patch 'net/virtio: add Tx preparation' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (52 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vdpa: remove trace of legacy linuxapp' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: move VLAN tag insertion to Tx prepare' " Kevin Traynor
                   ` (5 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Dilshod Urazov; +Cc: Andrew Rybchenko, Tiwei Bie, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/3a47da2edff7cf3234454e45d2876354035e7d7b

Thanks.

Kevin Traynor

---
From 3a47da2edff7cf3234454e45d2876354035e7d7b Mon Sep 17 00:00:00 2001
From: Dilshod Urazov <dilshod.urazov@oktetlabs.ru>
Date: Mon, 17 Jun 2019 12:31:37 +0100
Subject: [PATCH] net/virtio: add Tx preparation

[ upstream commit 00a5ea02e12fc1409901c0149ce87c28a286ea60 ]

Virtio requires pseudo-header checksum in TCP/UDP checksum to do
offload, but it was lost when Tx prepare is introduced. Also
rte_validate_tx_offload() should be used to validate Tx offloads.

Also it is incorrect to do virtio_tso_fix_cksum() after prepend
to mbuf without taking prepended size into account, since layer 2/3/4
lengths provide incorrect offsets after prepend.

Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")

Signed-off-by: Dilshod Urazov <dilshod.urazov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
---
 drivers/net/virtio/virtio_ethdev.c |  1 +
 drivers/net/virtio/virtio_ethdev.h |  3 +++
 drivers/net/virtio/virtio_rxtx.c   | 32 +++++++++++++++++++++++++++++-
 3 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 74076b9a9..9098cb6f4 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1342,4 +1342,5 @@ set_rxtx_funcs(struct rte_eth_dev *eth_dev)
 	struct virtio_hw *hw = eth_dev->data->dev_private;
 
+	eth_dev->tx_pkt_prepare = virtio_xmit_pkts_prepare;
 	if (hw->use_simple_rx) {
 		PMD_INIT_LOG(INFO, "virtio: using simple Rx path on port %u",
diff --git a/drivers/net/virtio/virtio_ethdev.h b/drivers/net/virtio/virtio_ethdev.h
index 39a9f7b7d..8eb866073 100644
--- a/drivers/net/virtio/virtio_ethdev.h
+++ b/drivers/net/virtio/virtio_ethdev.h
@@ -83,4 +83,7 @@ uint16_t virtio_recv_mergeable_pkts_inorder(void *rx_queue,
 		struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
 
+uint16_t virtio_xmit_pkts_prepare(void *tx_queue, struct rte_mbuf **tx_pkts,
+		uint16_t nb_pkts);
+
 uint16_t virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 		uint16_t nb_pkts);
diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index f8311b6e2..4d4487012 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -376,5 +376,4 @@ virtqueue_xmit_offload(struct virtio_net_hdr *hdr,
 		/* TCP Segmentation Offload */
 		if (cookie->ol_flags & PKT_TX_TCP_SEG) {
-			virtio_tso_fix_cksum(cookie);
 			hdr->gso_type = (cookie->ol_flags & PKT_TX_IPV6) ?
 				VIRTIO_NET_HDR_GSO_TCPV6 :
@@ -1333,4 +1332,35 @@ virtio_recv_mergeable_pkts(void *rx_queue,
 }
 
+uint16_t
+virtio_xmit_pkts_prepare(void *tx_queue __rte_unused, struct rte_mbuf **tx_pkts,
+			uint16_t nb_pkts)
+{
+	uint16_t nb_tx;
+	int error;
+
+	for (nb_tx = 0; nb_tx < nb_pkts; nb_tx++) {
+		struct rte_mbuf *m = tx_pkts[nb_tx];
+
+#ifdef RTE_LIBRTE_ETHDEV_DEBUG
+		error = rte_validate_tx_offload(m);
+		if (unlikely(error)) {
+			rte_errno = -error;
+			break;
+		}
+#endif
+
+		error = rte_net_intel_cksum_prepare(m);
+		if (unlikely(error)) {
+			rte_errno = -error;
+			break;
+		}
+
+		if (m->ol_flags & PKT_TX_TCP_SEG)
+			virtio_tso_fix_cksum(m);
+	}
+
+	return nb_tx;
+}
+
 uint16_t
 virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.906331697 +0100
+++ 0055-net-virtio-add-Tx-preparation.patch	2019-06-24 16:18:55.129428910 +0100
@@ -1 +1 @@
-From 00a5ea02e12fc1409901c0149ce87c28a286ea60 Mon Sep 17 00:00:00 2001
+From 3a47da2edff7cf3234454e45d2876354035e7d7b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 00a5ea02e12fc1409901c0149ce87c28a286ea60 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
-index afb2ca209..04aecb759 100644
+index 74076b9a9..9098cb6f4 100644
@@ -30 +31 @@
-@@ -1486,4 +1486,5 @@ set_rxtx_funcs(struct rte_eth_dev *eth_dev)
+@@ -1342,4 +1342,5 @@ set_rxtx_funcs(struct rte_eth_dev *eth_dev)
@@ -34,2 +35,2 @@
- 	if (vtpci_packed_queue(hw)) {
- 		PMD_INIT_LOG(INFO,
+ 	if (hw->use_simple_rx) {
+ 		PMD_INIT_LOG(INFO, "virtio: using simple Rx path on port %u",
@@ -37 +38 @@
-index 45e96f32b..20d331795 100644
+index 39a9f7b7d..8eb866073 100644
@@ -40 +41 @@
-@@ -90,4 +90,7 @@ uint16_t virtio_recv_pkts_inorder(void *rx_queue,
+@@ -83,4 +83,7 @@ uint16_t virtio_recv_mergeable_pkts_inorder(void *rx_queue,
@@ -49 +50 @@
-index 1f1178467..07f8f47de 100644
+index f8311b6e2..4d4487012 100644
@@ -52 +53 @@
-@@ -560,5 +560,4 @@ virtqueue_xmit_offload(struct virtio_net_hdr *hdr,
+@@ -376,5 +376,4 @@ virtqueue_xmit_offload(struct virtio_net_hdr *hdr,
@@ -58 +59 @@
-@@ -1950,4 +1949,35 @@ virtio_recv_mergeable_pkts_packed(void *rx_queue,
+@@ -1333,4 +1332,35 @@ virtio_recv_mergeable_pkts(void *rx_queue,
@@ -93 +94 @@
- virtio_xmit_pkts_packed(void *tx_queue, struct rte_mbuf **tx_pkts,
+ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)

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

* [dpdk-stable] patch 'net/virtio: move VLAN tag insertion to Tx prepare' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (53 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: add Tx preparation' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix memory leak in in-order Rx' " Kevin Traynor
                   ` (4 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Dilshod Urazov; +Cc: Andrew Rybchenko, Tiwei Bie, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/f57d9e8c085253c77eab3dafe6ca015c09301b17

Thanks.

Kevin Traynor

---
From f57d9e8c085253c77eab3dafe6ca015c09301b17 Mon Sep 17 00:00:00 2001
From: Dilshod Urazov <dilshod.urazov@oktetlabs.ru>
Date: Mon, 17 Jun 2019 12:31:38 +0100
Subject: [PATCH] net/virtio: move VLAN tag insertion to Tx prepare

[ upstream commit 3f8fb604748bbf7d52122e6478b94311eb75b803 ]

VLAN tag insertion should be in Tx prepare, not in Tx burst functions.
One of Tx prepare goals is to be able to do preparations in advance
(possibly on different CPU core) and then transmit it fast.
Also Tx prepare can report that a packet does not pass Tx offloads
check. E.g. has no enough headroom to insert VLAN header.

Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")

Signed-off-by: Dilshod Urazov <dilshod.urazov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
---
 drivers/net/virtio/virtio_rxtx.c | 38 ++++++++++++--------------------
 1 file changed, 14 insertions(+), 24 deletions(-)

diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index 4d4487012..4a56fb161 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -1350,4 +1350,18 @@ virtio_xmit_pkts_prepare(void *tx_queue __rte_unused, struct rte_mbuf **tx_pkts,
 #endif
 
+		/* Do VLAN tag insertion */
+		if (unlikely(m->ol_flags & PKT_TX_VLAN_PKT)) {
+			error = rte_vlan_insert(&m);
+			/* rte_vlan_insert() may change pointer
+			 * even in the case of failure
+			 */
+			tx_pkts[nb_tx] = m;
+
+			if (unlikely(error)) {
+				rte_errno = -error;
+				break;
+			}
+		}
+
 		error = rte_net_intel_cksum_prepare(m);
 		if (unlikely(error)) {
@@ -1371,5 +1385,4 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 	uint16_t hdr_size = hw->vtnet_hdr_size;
 	uint16_t nb_used, nb_tx = 0;
-	int error;
 
 	if (unlikely(hw->started == 0 && tx_pkts != hw->inject_pkts))
@@ -1390,15 +1403,4 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 		int can_push = 0, use_indirect = 0, slots, need;
 
-		/* Do VLAN tag insertion */
-		if (unlikely(txm->ol_flags & PKT_TX_VLAN_PKT)) {
-			error = rte_vlan_insert(&txm);
-			if (unlikely(error)) {
-				rte_pktmbuf_free(txm);
-				continue;
-			}
-			/* vlan_insert may add a header mbuf */
-			tx_pkts[nb_tx] = txm;
-		}
-
 		/* optimize ring usage */
 		if ((vtpci_with_feature(hw, VIRTIO_F_ANY_LAYOUT) ||
@@ -1471,5 +1473,4 @@ virtio_xmit_pkts_inorder(void *tx_queue,
 	uint16_t nb_used, nb_avail, nb_tx = 0, nb_inorder_pkts = 0;
 	struct rte_mbuf *inorder_pkts[nb_pkts];
-	int error;
 
 	if (unlikely(hw->started == 0 && tx_pkts != hw->inject_pkts))
@@ -1496,15 +1497,4 @@ virtio_xmit_pkts_inorder(void *tx_queue,
 		int slots, need;
 
-		/* Do VLAN tag insertion */
-		if (unlikely(txm->ol_flags & PKT_TX_VLAN_PKT)) {
-			error = rte_vlan_insert(&txm);
-			if (unlikely(error)) {
-				rte_pktmbuf_free(txm);
-				continue;
-			}
-			/* vlan_insert may add a header mbuf */
-			tx_pkts[nb_tx] = txm;
-		}
-
 		/* optimize ring usage */
 		if ((vtpci_with_feature(hw, VIRTIO_F_ANY_LAYOUT) ||
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.956013196 +0100
+++ 0056-net-virtio-move-VLAN-tag-insertion-to-Tx-prepare.patch	2019-06-24 16:18:55.130428887 +0100
@@ -1 +1 @@
-From 3f8fb604748bbf7d52122e6478b94311eb75b803 Mon Sep 17 00:00:00 2001
+From f57d9e8c085253c77eab3dafe6ca015c09301b17 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3f8fb604748bbf7d52122e6478b94311eb75b803 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -19,2 +20,2 @@
- drivers/net/virtio/virtio_rxtx.c | 50 +++++++++-----------------------
- 1 file changed, 14 insertions(+), 36 deletions(-)
+ drivers/net/virtio/virtio_rxtx.c | 38 ++++++++++++--------------------
+ 1 file changed, 14 insertions(+), 24 deletions(-)
@@ -23 +24 @@
-index 07f8f47de..dcce39e8c 100644
+index 4d4487012..4a56fb161 100644
@@ -26 +27 @@
-@@ -1967,4 +1967,18 @@ virtio_xmit_pkts_prepare(void *tx_queue __rte_unused, struct rte_mbuf **tx_pkts,
+@@ -1350,4 +1350,18 @@ virtio_xmit_pkts_prepare(void *tx_queue __rte_unused, struct rte_mbuf **tx_pkts,
@@ -45,23 +46 @@
-@@ -1990,5 +2004,4 @@ virtio_xmit_pkts_packed(void *tx_queue, struct rte_mbuf **tx_pkts,
- 	uint16_t nb_tx = 0;
- 	bool in_order = hw->use_inorder_tx;
--	int error;
- 
- 	if (unlikely(hw->started == 0 && tx_pkts != hw->inject_pkts))
-@@ -2008,15 +2021,4 @@ virtio_xmit_pkts_packed(void *tx_queue, struct rte_mbuf **tx_pkts,
- 		int can_push = 0, slots, need;
- 
--		/* Do VLAN tag insertion */
--		if (unlikely(txm->ol_flags & PKT_TX_VLAN_PKT)) {
--			error = rte_vlan_insert(&txm);
--			if (unlikely(error)) {
--				rte_pktmbuf_free(txm);
--				continue;
--			}
--			/* vlan_insert may add a header mbuf */
--			tx_pkts[nb_tx] = txm;
--		}
--
- 		/* optimize ring usage */
- 		if ((vtpci_with_feature(hw, VIRTIO_F_ANY_LAYOUT) ||
-@@ -2078,5 +2080,4 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -1371,5 +1385,4 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -73 +52 @@
-@@ -2097,15 +2098,4 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -1390,15 +1403,4 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -89 +68 @@
-@@ -2177,5 +2167,4 @@ virtio_xmit_pkts_inorder(void *tx_queue,
+@@ -1471,5 +1473,4 @@ virtio_xmit_pkts_inorder(void *tx_queue,
@@ -95 +74 @@
-@@ -2202,15 +2191,4 @@ virtio_xmit_pkts_inorder(void *tx_queue,
+@@ -1496,15 +1497,4 @@ virtio_xmit_pkts_inorder(void *tx_queue,

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

* [dpdk-stable] patch 'net/virtio: fix memory leak in in-order Rx' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (54 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: move VLAN tag insertion to Tx prepare' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'vhost: fix missing include' " Kevin Traynor
                   ` (3 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/c2f06b2a7d157455c8ae39883b15bd3fae9eee91

Thanks.

Kevin Traynor

---
From c2f06b2a7d157455c8ae39883b15bd3fae9eee91 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Thu, 20 Jun 2019 10:34:33 +0800
Subject: [PATCH] net/virtio: fix memory leak in in-order Rx

[ upstream commit 18e8c0fa91fff4e24e27bbbf42d1bdede93b879e ]

When there is no enough segments for a packet in in-order
mergeable Rx path, we should free the whole mbuf chain instead
of just recycling the last segment.

Fixes: e5f456a98d3c ("net/virtio: support in-order Rx and Tx")

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
---
 drivers/net/virtio/virtio_rxtx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index 4a56fb161..a02e1207f 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -1118,5 +1118,5 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,
 			PMD_RX_LOG(ERR,
 					"No enough segments for packet.");
-			virtio_discard_rxbuf_inorder(vq, prev);
+			rte_pktmbuf_free(rx_pkts[nb_rx]);
 			rxvq->stats.errors++;
 			break;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:58.008434200 +0100
+++ 0057-net-virtio-fix-memory-leak-in-in-order-Rx.patch	2019-06-24 16:18:55.131428863 +0100
@@ -1 +1 @@
-From 18e8c0fa91fff4e24e27bbbf42d1bdede93b879e Mon Sep 17 00:00:00 2001
+From c2f06b2a7d157455c8ae39883b15bd3fae9eee91 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 18e8c0fa91fff4e24e27bbbf42d1bdede93b879e ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index dcce39e8c..e4d5b6f09 100644
+index 4a56fb161..a02e1207f 100644
@@ -23 +24 @@
-@@ -1555,5 +1555,5 @@ virtio_recv_pkts_inorder(void *rx_queue,
+@@ -1118,5 +1118,5 @@ virtio_recv_mergeable_pkts_inorder(void *rx_queue,

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

* [dpdk-stable] patch 'vhost: fix missing include' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (55 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix memory leak in in-order Rx' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vhost_crypto: remove unused function' " Kevin Traynor
                   ` (2 subsequent siblings)
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Noa Ezra; +Cc: Maxime Coquelin, Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/838b3d3d6d5a4cc1e0c3093545d7dd091d27ca95

Thanks.

Kevin Traynor

---
From 838b3d3d6d5a4cc1e0c3093545d7dd091d27ca95 Mon Sep 17 00:00:00 2001
From: Noa Ezra <noae@mellanox.com>
Date: Thu, 20 Jun 2019 05:44:41 +0000
Subject: [PATCH] vhost: fix missing include

[ upstream commit 346c2c954e85c1769f09afd1cf75182d1f705c3e ]

Add a missing include with the defines for vhost-user driver features.

Fixes: 5fbb3941da9f ("vhost: introduce driver features related APIs")

Signed-off-by: Noa Ezra <noae@mellanox.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Matan Azrad <matan@mellanox.com>
---
 lib/librte_vhost/rte_vhost.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/librte_vhost/rte_vhost.h b/lib/librte_vhost/rte_vhost.h
index 5905e2401..ae96ed715 100644
--- a/lib/librte_vhost/rte_vhost.h
+++ b/lib/librte_vhost/rte_vhost.h
@@ -24,4 +24,5 @@ extern "C" {
 #include <linux/vhost.h>
 #include <linux/virtio_ring.h>
+#include <linux/virtio_net.h>
 
 #define RTE_VHOST_USER_CLIENT		(1ULL << 0)
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:58.056225311 +0100
+++ 0058-vhost-fix-missing-include.patch	2019-06-24 16:18:55.132428840 +0100
@@ -1 +1 @@
-From 346c2c954e85c1769f09afd1cf75182d1f705c3e Mon Sep 17 00:00:00 2001
+From 838b3d3d6d5a4cc1e0c3093545d7dd091d27ca95 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 346c2c954e85c1769f09afd1cf75182d1f705c3e ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 0226b3eff..338e47cea 100644
+index 5905e2401..ae96ed715 100644

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

* [dpdk-stable] patch 'examples/vhost_crypto: remove unused function' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (56 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'vhost: fix missing include' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix logically dead code' " Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix inferred misuse of enum' " Kevin Traynor
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Fan Zhang; +Cc: Jens Freimann, Marko Kovacevic, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/7c054a7e1458c42c882aaeda47c84a1d45247bd0

Thanks.

Kevin Traynor

---
From 7c054a7e1458c42c882aaeda47c84a1d45247bd0 Mon Sep 17 00:00:00 2001
From: Fan Zhang <roy.fan.zhang@intel.com>
Date: Wed, 15 May 2019 17:25:48 +0100
Subject: [PATCH] examples/vhost_crypto: remove unused function

[ upstream commit be7a9518da654abba52939e9334919598669a086 ]

This patch tries to fix the coverity issue of unchecked
return value. Since the function that causes the problem
is unused, it is removed completely.

Coverity issue: 336816
Fixes: f5188211c721 ("examples/vhost_crypto: add sample application")

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 examples/vhost_crypto/main.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/examples/vhost_crypto/main.c b/examples/vhost_crypto/main.c
index 3deb5263f..c6d55c840 100644
--- a/examples/vhost_crypto/main.c
+++ b/examples/vhost_crypto/main.c
@@ -353,10 +353,4 @@ static const struct vhost_device_ops virtio_crypto_device_ops = {
 };
 
-__attribute__((unused))
-static void clrscr(void)
-{
-	system("@cls||clear");
-}
-
 static int
 vhost_crypto_worker(void *arg)
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:58.106509435 +0100
+++ 0059-examples-vhost_crypto-remove-unused-function.patch	2019-06-24 16:18:55.133428816 +0100
@@ -1 +1 @@
-From be7a9518da654abba52939e9334919598669a086 Mon Sep 17 00:00:00 2001
+From 7c054a7e1458c42c882aaeda47c84a1d45247bd0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit be7a9518da654abba52939e9334919598669a086 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index ac7118e7e..cfb9dfda2 100644
+index 3deb5263f..c6d55c840 100644
@@ -26 +27 @@
-@@ -355,10 +355,4 @@ static const struct vhost_device_ops virtio_crypto_device_ops = {
+@@ -353,10 +353,4 @@ static const struct vhost_device_ops virtio_crypto_device_ops = {

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

* [dpdk-stable] patch 'vhost/crypto: fix logically dead code' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (57 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vhost_crypto: remove unused function' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix inferred misuse of enum' " Kevin Traynor
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Fan Zhang; +Cc: Marko Kovacevic, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/9a0e607513cbd7311e3dcc93840d1697e15a6cba

Thanks.

Kevin Traynor

---
From 9a0e607513cbd7311e3dcc93840d1697e15a6cba Mon Sep 17 00:00:00 2001
From: Fan Zhang <roy.fan.zhang@intel.com>
Date: Wed, 15 May 2019 17:19:48 +0100
Subject: [PATCH] vhost/crypto: fix logically dead code

[ upstream commit 1a92c9632bf8106dbf5afd0df159612cee7f6b76 ]

This patch fixes a few same class bugs that causes the
logically dead code in vhost_crypto.

Coverity issue: 277236, 277233, 277220, 277214
Fixes: 3bb595ecd682 ("vhost/crypto: add request handler")

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_vhost/vhost_crypto.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_vhost/vhost_crypto.c b/lib/librte_vhost/vhost_crypto.c
index fc362ba98..590f5ad83 100644
--- a/lib/librte_vhost/vhost_crypto.c
+++ b/lib/librte_vhost/vhost_crypto.c
@@ -1018,5 +1018,5 @@ prepare_sym_chain_op(struct vhost_crypto *vcrypto, struct rte_crypto_op *op,
 		if (unlikely(copy_data(rte_pktmbuf_mtod(m_src, uint8_t *),
 				vc_req, &desc, chain->para.src_data_len,
-				nb_descs, vq_size)) < 0) {
+				nb_descs, vq_size) < 0)) {
 			ret = VIRTIO_CRYPTO_BADMSG;
 			goto error_exit;
@@ -1589,5 +1589,5 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
 
 			if (unlikely(vhost_crypto_process_one_req(vcrypto, vq,
-					op, head, desc_idx)) < 0)
+					op, head, desc_idx) < 0))
 				break;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:58.152745019 +0100
+++ 0060-vhost-crypto-fix-logically-dead-code.patch	2019-06-24 16:18:55.134428792 +0100
@@ -1 +1 @@
-From 1a92c9632bf8106dbf5afd0df159612cee7f6b76 Mon Sep 17 00:00:00 2001
+From 9a0e607513cbd7311e3dcc93840d1697e15a6cba Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1a92c9632bf8106dbf5afd0df159612cee7f6b76 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 0edf12d52..069b56108 100644
+index fc362ba98..590f5ad83 100644
@@ -24 +25 @@
-@@ -1025,5 +1025,5 @@ prepare_sym_chain_op(struct vhost_crypto *vcrypto, struct rte_crypto_op *op,
+@@ -1018,5 +1018,5 @@ prepare_sym_chain_op(struct vhost_crypto *vcrypto, struct rte_crypto_op *op,
@@ -31 +32 @@
-@@ -1599,5 +1599,5 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
+@@ -1589,5 +1589,5 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,

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

* [dpdk-stable] patch 'vhost/crypto: fix inferred misuse of enum' has been queued to LTS release 18.11.3
  2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
                   ` (58 preceding siblings ...)
  2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix logically dead code' " Kevin Traynor
@ 2019-06-24 15:25 ` Kevin Traynor
  59 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2019-06-24 15:25 UTC (permalink / raw)
  To: Fan Zhang; +Cc: Marko Kovacevic, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/6676ee09c8bdd8aa3b731a17aa8fa02de2bdebee

Thanks.

Kevin Traynor

---
From 6676ee09c8bdd8aa3b731a17aa8fa02de2bdebee Mon Sep 17 00:00:00 2001
From: Fan Zhang <roy.fan.zhang@intel.com>
Date: Wed, 15 May 2019 17:09:11 +0100
Subject: [PATCH] vhost/crypto: fix inferred misuse of enum

[ upstream commit 4349d412afe4ec25b43867f4d6d4672156cb5766 ]

This patch fixes the inferred misuse of enum of crypto algorithms.

Coverity issue: 325879
Fixes: e80a98708166 ("vhost/crypto: add session message handler")

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_vhost/vhost_crypto.c | 93 +++++++++++++++------------------
 1 file changed, 41 insertions(+), 52 deletions(-)

diff --git a/lib/librte_vhost/vhost_crypto.c b/lib/librte_vhost/vhost_crypto.c
index 590f5ad83..d8a0f954b 100644
--- a/lib/librte_vhost/vhost_crypto.c
+++ b/lib/librte_vhost/vhost_crypto.c
@@ -47,114 +47,105 @@
 
 static int
-cipher_algo_transform(uint32_t virtio_cipher_algo)
+cipher_algo_transform(uint32_t virtio_cipher_algo,
+		enum rte_crypto_cipher_algorithm *algo)
 {
-	int ret;
-
 	switch (virtio_cipher_algo) {
 	case VIRTIO_CRYPTO_CIPHER_AES_CBC:
-		ret = RTE_CRYPTO_CIPHER_AES_CBC;
+		*algo = RTE_CRYPTO_CIPHER_AES_CBC;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_AES_CTR:
-		ret = RTE_CRYPTO_CIPHER_AES_CTR;
+		*algo = RTE_CRYPTO_CIPHER_AES_CTR;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_DES_ECB:
-		ret = -VIRTIO_CRYPTO_NOTSUPP;
+		*algo = -VIRTIO_CRYPTO_NOTSUPP;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_DES_CBC:
-		ret = RTE_CRYPTO_CIPHER_DES_CBC;
+		*algo = RTE_CRYPTO_CIPHER_DES_CBC;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_3DES_ECB:
-		ret = RTE_CRYPTO_CIPHER_3DES_ECB;
+		*algo = RTE_CRYPTO_CIPHER_3DES_ECB;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_3DES_CBC:
-		ret = RTE_CRYPTO_CIPHER_3DES_CBC;
+		*algo = RTE_CRYPTO_CIPHER_3DES_CBC;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_3DES_CTR:
-		ret = RTE_CRYPTO_CIPHER_3DES_CTR;
+		*algo = RTE_CRYPTO_CIPHER_3DES_CTR;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_KASUMI_F8:
-		ret = RTE_CRYPTO_CIPHER_KASUMI_F8;
+		*algo = RTE_CRYPTO_CIPHER_KASUMI_F8;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_SNOW3G_UEA2:
-		ret = RTE_CRYPTO_CIPHER_SNOW3G_UEA2;
+		*algo = RTE_CRYPTO_CIPHER_SNOW3G_UEA2;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_AES_F8:
-		ret = RTE_CRYPTO_CIPHER_AES_F8;
+		*algo = RTE_CRYPTO_CIPHER_AES_F8;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_AES_XTS:
-		ret = RTE_CRYPTO_CIPHER_AES_XTS;
+		*algo = RTE_CRYPTO_CIPHER_AES_XTS;
 		break;
 	case VIRTIO_CRYPTO_CIPHER_ZUC_EEA3:
-		ret = RTE_CRYPTO_CIPHER_ZUC_EEA3;
+		*algo = RTE_CRYPTO_CIPHER_ZUC_EEA3;
 		break;
 	default:
-		ret = -VIRTIO_CRYPTO_BADMSG;
+		return -VIRTIO_CRYPTO_BADMSG;
 		break;
 	}
 
-	return ret;
+	return 0;
 }
 
 static int
-auth_algo_transform(uint32_t virtio_auth_algo)
+auth_algo_transform(uint32_t virtio_auth_algo,
+		enum rte_crypto_auth_algorithm *algo)
 {
-	int ret;
-
 	switch (virtio_auth_algo) {
-
 	case VIRTIO_CRYPTO_NO_MAC:
-		ret = RTE_CRYPTO_AUTH_NULL;
+		*algo = RTE_CRYPTO_AUTH_NULL;
 		break;
 	case VIRTIO_CRYPTO_MAC_HMAC_MD5:
-		ret = RTE_CRYPTO_AUTH_MD5_HMAC;
+		*algo = RTE_CRYPTO_AUTH_MD5_HMAC;
 		break;
 	case VIRTIO_CRYPTO_MAC_HMAC_SHA1:
-		ret = RTE_CRYPTO_AUTH_SHA1_HMAC;
+		*algo = RTE_CRYPTO_AUTH_SHA1_HMAC;
 		break;
 	case VIRTIO_CRYPTO_MAC_HMAC_SHA_224:
-		ret = RTE_CRYPTO_AUTH_SHA224_HMAC;
+		*algo = RTE_CRYPTO_AUTH_SHA224_HMAC;
 		break;
 	case VIRTIO_CRYPTO_MAC_HMAC_SHA_256:
-		ret = RTE_CRYPTO_AUTH_SHA256_HMAC;
+		*algo = RTE_CRYPTO_AUTH_SHA256_HMAC;
 		break;
 	case VIRTIO_CRYPTO_MAC_HMAC_SHA_384:
-		ret = RTE_CRYPTO_AUTH_SHA384_HMAC;
+		*algo = RTE_CRYPTO_AUTH_SHA384_HMAC;
 		break;
 	case VIRTIO_CRYPTO_MAC_HMAC_SHA_512:
-		ret = RTE_CRYPTO_AUTH_SHA512_HMAC;
-		break;
-	case VIRTIO_CRYPTO_MAC_CMAC_3DES:
-		ret = -VIRTIO_CRYPTO_NOTSUPP;
+		*algo = RTE_CRYPTO_AUTH_SHA512_HMAC;
 		break;
 	case VIRTIO_CRYPTO_MAC_CMAC_AES:
-		ret = RTE_CRYPTO_AUTH_AES_CMAC;
+		*algo = RTE_CRYPTO_AUTH_AES_CMAC;
 		break;
 	case VIRTIO_CRYPTO_MAC_KASUMI_F9:
-		ret = RTE_CRYPTO_AUTH_KASUMI_F9;
+		*algo = RTE_CRYPTO_AUTH_KASUMI_F9;
 		break;
 	case VIRTIO_CRYPTO_MAC_SNOW3G_UIA2:
-		ret = RTE_CRYPTO_AUTH_SNOW3G_UIA2;
+		*algo = RTE_CRYPTO_AUTH_SNOW3G_UIA2;
 		break;
 	case VIRTIO_CRYPTO_MAC_GMAC_AES:
-		ret = RTE_CRYPTO_AUTH_AES_GMAC;
-		break;
-	case VIRTIO_CRYPTO_MAC_GMAC_TWOFISH:
-		ret = -VIRTIO_CRYPTO_NOTSUPP;
+		*algo = RTE_CRYPTO_AUTH_AES_GMAC;
 		break;
 	case VIRTIO_CRYPTO_MAC_CBCMAC_AES:
-		ret = RTE_CRYPTO_AUTH_AES_CBC_MAC;
-		break;
-	case VIRTIO_CRYPTO_MAC_CBCMAC_KASUMI_F9:
-		ret = -VIRTIO_CRYPTO_NOTSUPP;
+		*algo = RTE_CRYPTO_AUTH_AES_CBC_MAC;
 		break;
 	case VIRTIO_CRYPTO_MAC_XCBC_AES:
-		ret = RTE_CRYPTO_AUTH_AES_XCBC_MAC;
+		*algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC;
 		break;
+	case VIRTIO_CRYPTO_MAC_CMAC_3DES:
+	case VIRTIO_CRYPTO_MAC_GMAC_TWOFISH:
+	case VIRTIO_CRYPTO_MAC_CBCMAC_KASUMI_F9:
+		return -VIRTIO_CRYPTO_NOTSUPP;
 	default:
-		ret = -VIRTIO_CRYPTO_BADMSG;
-		break;
+		return -VIRTIO_CRYPTO_BADMSG;
 	}
 
-	return ret;
+	return 0;
 }
 
@@ -242,10 +233,9 @@ transform_cipher_param(struct rte_crypto_sym_xform *xform,
 	int ret;
 
-	ret = cipher_algo_transform(param->cipher_algo);
+	ret = cipher_algo_transform(param->cipher_algo, &xform->cipher.algo);
 	if (unlikely(ret < 0))
 		return ret;
 
 	xform->type = RTE_CRYPTO_SYM_XFORM_CIPHER;
-	xform->cipher.algo = (enum rte_crypto_cipher_algorithm)ret;
 	xform->cipher.key.length = param->cipher_key_len;
 	if (xform->cipher.key.length > 0)
@@ -293,9 +283,9 @@ transform_chain_param(struct rte_crypto_sym_xform *xforms,
 
 	/* cipher */
-	ret = cipher_algo_transform(param->cipher_algo);
+	ret = cipher_algo_transform(param->cipher_algo,
+			&xform_cipher->cipher.algo);
 	if (unlikely(ret < 0))
 		return ret;
 	xform_cipher->type = RTE_CRYPTO_SYM_XFORM_CIPHER;
-	xform_cipher->cipher.algo = (enum rte_crypto_cipher_algorithm)ret;
 	xform_cipher->cipher.key.length = param->cipher_key_len;
 	xform_cipher->cipher.key.data = param->cipher_key_buf;
@@ -308,8 +298,7 @@ transform_chain_param(struct rte_crypto_sym_xform *xforms,
 	/* auth */
 	xform_auth->type = RTE_CRYPTO_SYM_XFORM_AUTH;
-	ret = auth_algo_transform(param->hash_algo);
+	ret = auth_algo_transform(param->hash_algo, &xform_auth->auth.algo);
 	if (unlikely(ret < 0))
 		return ret;
-	xform_auth->auth.algo = (enum rte_crypto_auth_algorithm)ret;
 	xform_auth->auth.digest_length = param->digest_len;
 	xform_auth->auth.key.length = param->auth_key_len;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:58.203008624 +0100
+++ 0061-vhost-crypto-fix-inferred-misuse-of-enum.patch	2019-06-24 16:18:55.136428745 +0100
@@ -1 +1 @@
-From 4349d412afe4ec25b43867f4d6d4672156cb5766 Mon Sep 17 00:00:00 2001
+From 6676ee09c8bdd8aa3b731a17aa8fa02de2bdebee Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4349d412afe4ec25b43867f4d6d4672156cb5766 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 069b56108..8652a778a 100644
+index 590f5ad83..d8a0f954b 100644
@@ -175 +176 @@
-@@ -243,10 +234,9 @@ transform_cipher_param(struct rte_crypto_sym_xform *xform,
+@@ -242,10 +233,9 @@ transform_cipher_param(struct rte_crypto_sym_xform *xform,
@@ -187 +188 @@
-@@ -294,9 +284,9 @@ transform_chain_param(struct rte_crypto_sym_xform *xforms,
+@@ -293,9 +283,9 @@ transform_chain_param(struct rte_crypto_sym_xform *xforms,
@@ -199 +200 @@
-@@ -309,8 +299,7 @@ transform_chain_param(struct rte_crypto_sym_xform *xforms,
+@@ -308,8 +298,7 @@ transform_chain_param(struct rte_crypto_sym_xform *xforms,

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

* Re: [dpdk-stable] patch 'net/bnxt: check for null completion ring doorbell' has been queued to LTS release 18.11.3
  2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: check for null completion ring doorbell' " Kevin Traynor
@ 2019-06-25  3:42   ` Somnath Kotur
  0 siblings, 0 replies; 62+ messages in thread
From: Somnath Kotur @ 2019-06-25  3:42 UTC (permalink / raw)
  To: Kevin Traynor; +Cc: Kalesh AP, Ajit Khaparde, dpdk stable

On Mon, Jun 24, 2019 at 8:56 PM Kevin Traynor <ktraynor@redhat.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 18.11.3
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 06/27/19. So please
> shout if anyone has objections.
>
> Also note that after the patch there's a diff of the upstream commit vs the
> patch applied to the branch. This will indicate if there was any rebasing
> needed to apply to the stable branch. If there were code changes for rebasing
> (ie: not only metadata diffs), please double check that the rebase was
> correctly done.
>
> Queued patches are on a temporary branch at:
> https://github.com/kevintraynor/dpdk-stable-queue
>
> This queued commit can be viewed at:
> https://github.com/kevintraynor/dpdk-stable-queue/commit/0e449f4f13ad7d9c8ff1c241a51b5d41cd03d245
>
> Thanks.
>
> Kevin Traynor
>

Thanks Kevin! ACK-ed the rebase

Regards
Som
> ---
> From 0e449f4f13ad7d9c8ff1c241a51b5d41cd03d245 Mon Sep 17 00:00:00 2001
> From: Somnath Kotur <somnath.kotur@broadcom.com>
> Date: Sat, 8 Jun 2019 23:22:04 +0400
> Subject: [PATCH] net/bnxt: check for null completion ring doorbell
>
> [ upstream commit 2807c5861e31b99295b915b28e121ce059a46416 ]
>
> It is observed that sometimes during init, the bnxt_int_handler() gets
> invoked while the cpr->cp_db.doorbell is not yet initialized. Check for
> the same and return.
>
> Fixes: f7ecea911ec5 ("net/bnxt: fix interrupt handler")
>
> Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
> Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---
>  drivers/net/bnxt/bnxt_irq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/bnxt/bnxt_irq.c b/drivers/net/bnxt/bnxt_irq.c
> index e03766b41..e3aac7cbe 100644
> --- a/drivers/net/bnxt/bnxt_irq.c
> +++ b/drivers/net/bnxt/bnxt_irq.c
> @@ -32,5 +32,5 @@ static void bnxt_int_handler(void *param)
>         raw_cons = cpr->cp_raw_cons;
>         while (1) {
> -               if (!cpr || !cpr->cp_ring_struct)
> +               if (!cpr || !cpr->cp_ring_struct || !cpr->cp_doorbell)
>                         return;
>
> --
> 2.20.1
>
> ---
>   Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- -   2019-06-24 16:18:56.998750420 +0100
> +++ 0037-net-bnxt-check-for-null-completion-ring-doorbell.patch 2019-06-24 16:18:55.067430374 +0100
> @@ -1 +1 @@
> -From 2807c5861e31b99295b915b28e121ce059a46416 Mon Sep 17 00:00:00 2001
> +From 0e449f4f13ad7d9c8ff1c241a51b5d41cd03d245 Mon Sep 17 00:00:00 2001
> @@ -5,0 +6,2 @@
> +[ upstream commit 2807c5861e31b99295b915b28e121ce059a46416 ]
> +
> @@ -11 +12,0 @@
> -Cc: stable@dpdk.org
> @@ -21 +22 @@
> -index 918f3dcf4..0bb3eb4fa 100644
> +index e03766b41..e3aac7cbe 100644
> @@ -28 +29 @@
> -+              if (!cpr || !cpr->cp_ring_struct || !cpr->cp_db.doorbell)
> ++              if (!cpr || !cpr->cp_ring_struct || !cpr->cp_doorbell)

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

end of thread, other threads:[~2019-06-25  3:41 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' has been queued to LTS release 18.11.3 Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ark: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/axgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bonding: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/cxgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ena: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/mlx5: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: remove useless check on mempool' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: fix in-order Rx with segmented packet' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix endianness in ring macros' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix ring type macro name' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix variable width in endian conversion' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/failsafe: fix reported device info' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ena: fix assigning NUMA node to IO queue' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix packet drop' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix interrupt flood' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix memory leak' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix link state' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix supported max Rx/Tx descriptor count' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'ethdev: fix Tx prepare documentation to use positive errno' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/atlantic: fix Tx prepare to set positive rte_errno' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/fm10k: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/iavf: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/qede: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/vmxnet3: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: remove flow count action support' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/enic: remove flow locks' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: check for null completion ring doorbell' " Kevin Traynor
2019-06-25  3:42   ` Somnath Kotur
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix xstats' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix interrupt vector initialization' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix icc build' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/ixgbevf: add full link status check option' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'bus/pci: fix TOCTOU for sysfs access' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'doc: fix typo in EAL guide' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'telemetry: fix memory leak' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: enable chained multicast on all EF10 cards' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix signed/unsigned mismatch' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix shift by more bits than field width' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/netvsc: initialize VF spinlock' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: fix dropped packets statistics name' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: remove empty queue stats mapping set devops' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix queue memory leak on error' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap port IO for legacy device' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap device on initialization error' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vdpa: remove trace of legacy linuxapp' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: add Tx preparation' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: move VLAN tag insertion to Tx prepare' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix memory leak in in-order Rx' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'vhost: fix missing include' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vhost_crypto: remove unused function' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix logically dead code' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix inferred misuse of enum' " Kevin Traynor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).