[dpdk-stable] patch 'net/mlx4: change device reference for secondary process' has been queued to LTS release 18.11.2
Kevin Traynor
ktraynor at redhat.com
Tue Apr 30 19:00:57 CEST 2019
Hi,
FYI, your patch has been queued to LTS release 18.11.2
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/07/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 can be viewed on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue.git
Thanks.
Kevin Traynor
---
>From fbc7be121f71629834a60f50d4419932740bddd1 Mon Sep 17 00:00:00 2001
From: Yongseok Koh <yskoh at mellanox.com>
Date: Mon, 1 Apr 2019 14:15:51 -0700
Subject: [PATCH] net/mlx4: change device reference for secondary process
[ upstream commit 099c2c5376131b3d352d70f8904e586c0e84651e ]
rte_eth_devices[] is not shared between primary and secondary process,
but a static array to each process. The reverse pointer of device
(priv->dev) becomes invalid if mlx4 supports secondary process.
Instead, priv has the pointer to shared data of the device,
struct rte_eth_dev_data *dev_data;
Two macros are added,
#define PORT_ID(priv) ((priv)->dev_data->port_id)
#define ETH_DEV(priv) (&rte_eth_devices[PORT_ID(priv)])
Suggested-by: Raslan Darawsheh <rasland at mellanox.com>
Signed-off-by: Yongseok Koh <yskoh at mellanox.com>
Acked-by: Shahaf Shuler <shahafs at mellanox.com>
---
drivers/net/mlx4/mlx4.c | 4 ++--
drivers/net/mlx4/mlx4.h | 5 ++++-
drivers/net/mlx4/mlx4_flow.c | 39 +++++++++++++++++++-----------------
drivers/net/mlx4/mlx4_intr.c | 20 +++++++++---------
drivers/net/mlx4/mlx4_mr.c | 8 ++++----
drivers/net/mlx4/mlx4_rxq.c | 36 +++++++++++++++++----------------
drivers/net/mlx4/mlx4_txq.c | 8 ++++----
7 files changed, 64 insertions(+), 56 deletions(-)
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 8aa116cb7..4bc966d5f 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -753,9 +753,9 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
*/
eth_dev->intr_handle = &priv->intr_handle;
- priv->dev = eth_dev;
+ priv->dev_data = eth_dev->data;
eth_dev->dev_ops = &mlx4_dev_ops;
/* Bring Ethernet device up. */
DEBUG("forcing Ethernet interface up");
- mlx4_dev_set_link_up(priv->dev);
+ mlx4_dev_set_link_up(eth_dev);
/* Update link status once if waiting for LSC. */
if (eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h
index 180e5186c..fc568eb3e 100644
--- a/drivers/net/mlx4/mlx4.h
+++ b/drivers/net/mlx4/mlx4.h
@@ -80,5 +80,5 @@ struct mlx4_priv {
LIST_ENTRY(mlx4_priv) mem_event_cb;
/**< Called by memory event callback. */
- struct rte_eth_dev *dev; /**< Ethernet device. */
+ struct rte_eth_dev_data *dev_data; /* Pointer to device data. */
struct ibv_context *ctx; /**< Verbs context. */
struct ibv_device_attr device_attr; /**< Device properties. */
@@ -114,4 +114,7 @@ struct mlx4_priv {
};
+#define PORT_ID(priv) ((priv)->dev_data->port_id)
+#define ETH_DEV(priv) (&rte_eth_devices[PORT_ID(priv)])
+
/* mlx4_ethdev.c */
diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c
index f16037d1d..5136d136f 100644
--- a/drivers/net/mlx4/mlx4_flow.c
+++ b/drivers/net/mlx4/mlx4_flow.c
@@ -768,5 +768,5 @@ fill:
break;
queue = action->conf;
- if (queue->index >= priv->dev->data->nb_rx_queues) {
+ if (queue->index >= ETH_DEV(priv)->data->nb_rx_queues) {
msg = "queue target index beyond number of"
" configured Rx queues";
@@ -797,5 +797,5 @@ fill:
for (i = 0; i < rss->queue_num; ++i)
if (rss->queue[i] >=
- priv->dev->data->nb_rx_queues)
+ ETH_DEV(priv)->data->nb_rx_queues)
break;
if (i != rss->queue_num) {
@@ -1067,6 +1067,6 @@ mlx4_flow_toggle(struct mlx4_priv *priv,
for (i = 0; i != rss->queues; ++i)
if (rss->queue_id[i] >=
- priv->dev->data->nb_rx_queues ||
- !priv->dev->data->rx_queues[rss->queue_id[i]]) {
+ ETH_DEV(priv)->data->nb_rx_queues ||
+ !ETH_DEV(priv)->data->rx_queues[rss->queue_id[i]]) {
missing = 1;
break;
@@ -1253,5 +1253,5 @@ mlx4_flow_internal_next_vlan(struct mlx4_priv *priv, uint16_t vlan)
{
while (vlan < 4096) {
- if (priv->dev->data->vlan_filter_conf.ids[vlan / 64] &
+ if (ETH_DEV(priv)->data->vlan_filter_conf.ids[vlan / 64] &
(UINT64_C(1) << (vlan % 64)))
return vlan;
@@ -1330,5 +1330,5 @@ mlx4_flow_internal(struct mlx4_priv *priv, struct rte_flow_error *error)
*/
uint32_t queues =
- rte_align32pow2(priv->dev->data->nb_rx_queues + 1) >> 1;
+ rte_align32pow2(ETH_DEV(priv)->data->nb_rx_queues + 1) >> 1;
uint16_t queue[queues];
struct rte_flow_action_rss action_rss = {
@@ -1352,7 +1352,7 @@ mlx4_flow_internal(struct mlx4_priv *priv, struct rte_flow_error *error)
struct ether_addr *rule_mac = ð_spec.dst;
rte_be16_t *rule_vlan =
- (priv->dev->data->dev_conf.rxmode.offloads &
+ (ETH_DEV(priv)->data->dev_conf.rxmode.offloads &
DEV_RX_OFFLOAD_VLAN_FILTER) &&
- !priv->dev->data->promiscuous ?
+ !ETH_DEV(priv)->data->promiscuous ?
&vlan_spec.tci :
NULL;
@@ -1434,5 +1434,5 @@ next_vlan:
/* Not found, create a new flow rule. */
memcpy(rule_mac, mac, sizeof(*mac));
- flow = mlx4_flow_create(priv->dev, &attr, pattern,
+ flow = mlx4_flow_create(ETH_DEV(priv), &attr, pattern,
actions, error);
if (!flow) {
@@ -1450,13 +1450,14 @@ next_vlan:
}
/* Take care of promiscuous and all multicast flow rules. */
- if (priv->dev->data->promiscuous || priv->dev->data->all_multicast) {
+ if (ETH_DEV(priv)->data->promiscuous ||
+ ETH_DEV(priv)->data->all_multicast) {
for (flow = LIST_FIRST(&priv->flows);
flow && flow->internal;
flow = LIST_NEXT(flow, next)) {
- if (priv->dev->data->promiscuous) {
+ if (ETH_DEV(priv)->data->promiscuous) {
if (flow->promisc)
break;
} else {
- assert(priv->dev->data->all_multicast);
+ assert(ETH_DEV(priv)->data->all_multicast);
if (flow->allmulti)
break;
@@ -1472,14 +1473,14 @@ next_vlan:
if (!flow || !flow->internal) {
/* Not found, create a new flow rule. */
- if (priv->dev->data->promiscuous) {
+ if (ETH_DEV(priv)->data->promiscuous) {
pattern[1].spec = NULL;
pattern[1].mask = NULL;
} else {
- assert(priv->dev->data->all_multicast);
+ assert(ETH_DEV(priv)->data->all_multicast);
pattern[1].spec = ð_allmulti;
pattern[1].mask = ð_allmulti;
}
pattern[2] = pattern[3];
- flow = mlx4_flow_create(priv->dev, &attr, pattern,
+ flow = mlx4_flow_create(ETH_DEV(priv), &attr, pattern,
actions, error);
if (!flow) {
@@ -1498,5 +1499,6 @@ error:
if (!flow->select)
- claim_zero(mlx4_flow_destroy(priv->dev, flow, error));
+ claim_zero(mlx4_flow_destroy(ETH_DEV(priv), flow,
+ error));
else
flow->select = 0;
@@ -1536,5 +1538,6 @@ mlx4_flow_sync(struct mlx4_priv *priv, struct rte_flow_error *error)
flow && flow->internal;
flow = LIST_FIRST(&priv->flows))
- claim_zero(mlx4_flow_destroy(priv->dev, flow, error));
+ claim_zero(mlx4_flow_destroy(ETH_DEV(priv), flow,
+ error));
} else {
/* Refresh internal rules. */
@@ -1569,5 +1572,5 @@ mlx4_flow_clean(struct mlx4_priv *priv)
while ((flow = LIST_FIRST(&priv->flows)))
- mlx4_flow_destroy(priv->dev, flow, NULL);
+ mlx4_flow_destroy(ETH_DEV(priv), flow, NULL);
assert(LIST_EMPTY(&priv->rss));
}
diff --git a/drivers/net/mlx4/mlx4_intr.c b/drivers/net/mlx4/mlx4_intr.c
index ec9124219..4f3352675 100644
--- a/drivers/net/mlx4/mlx4_intr.c
+++ b/drivers/net/mlx4/mlx4_intr.c
@@ -66,5 +66,5 @@ mlx4_rx_intr_vec_enable(struct mlx4_priv *priv)
{
unsigned int i;
- unsigned int rxqs_n = priv->dev->data->nb_rx_queues;
+ unsigned int rxqs_n = ETH_DEV(priv)->data->nb_rx_queues;
unsigned int n = RTE_MIN(rxqs_n, (uint32_t)RTE_MAX_RXTX_INTR_VEC_ID);
unsigned int count = 0;
@@ -80,5 +80,5 @@ mlx4_rx_intr_vec_enable(struct mlx4_priv *priv)
}
for (i = 0; i != n; ++i) {
- struct rxq *rxq = priv->dev->data->rx_queues[i];
+ struct rxq *rxq = ETH_DEV(priv)->data->rx_queues[i];
/* Skip queues that cannot request interrupts. */
@@ -121,10 +121,10 @@ mlx4_link_status_alarm(struct mlx4_priv *priv)
{
const struct rte_intr_conf *const intr_conf =
- &priv->dev->data->dev_conf.intr_conf;
+ Ð_DEV(priv)->data->dev_conf.intr_conf;
assert(priv->intr_alarm == 1);
priv->intr_alarm = 0;
if (intr_conf->lsc && !mlx4_link_status_check(priv))
- _rte_eth_dev_callback_process(priv->dev,
+ _rte_eth_dev_callback_process(ETH_DEV(priv),
RTE_ETH_EVENT_INTR_LSC,
NULL);
@@ -146,6 +146,6 @@ static int
mlx4_link_status_check(struct mlx4_priv *priv)
{
- struct rte_eth_link *link = &priv->dev->data->dev_link;
- int ret = mlx4_link_update(priv->dev, 0);
+ struct rte_eth_link *link = Ð_DEV(priv)->data->dev_link;
+ int ret = mlx4_link_update(ETH_DEV(priv), 0);
if (ret)
@@ -186,5 +186,5 @@ mlx4_interrupt_handler(struct mlx4_priv *priv)
struct ibv_async_event event;
const struct rte_intr_conf *const intr_conf =
- &priv->dev->data->dev_conf.intr_conf;
+ Ð_DEV(priv)->data->dev_conf.intr_conf;
unsigned int i;
@@ -209,5 +209,5 @@ mlx4_interrupt_handler(struct mlx4_priv *priv)
for (i = 0; i != RTE_DIM(caught); ++i)
if (caught[i])
- _rte_eth_dev_callback_process(priv->dev, type[i],
+ _rte_eth_dev_callback_process(ETH_DEV(priv), type[i],
NULL);
}
@@ -283,5 +283,5 @@ mlx4_intr_install(struct mlx4_priv *priv)
{
const struct rte_intr_conf *const intr_conf =
- &priv->dev->data->dev_conf.intr_conf;
+ Ð_DEV(priv)->data->dev_conf.intr_conf;
int rc;
@@ -382,5 +382,5 @@ mlx4_rxq_intr_enable(struct mlx4_priv *priv)
{
const struct rte_intr_conf *const intr_conf =
- &priv->dev->data->dev_conf.intr_conf;
+ Ð_DEV(priv)->data->dev_conf.intr_conf;
if (intr_conf->rxq && mlx4_rx_intr_vec_enable(priv) < 0)
diff --git a/drivers/net/mlx4/mlx4_mr.c b/drivers/net/mlx4/mlx4_mr.c
index 4376ad0b6..e4be46ab2 100644
--- a/drivers/net/mlx4/mlx4_mr.c
+++ b/drivers/net/mlx4/mlx4_mr.c
@@ -897,5 +897,5 @@ mlx4_mr_mem_event_cb(enum rte_mem_event event_type, const void *addr,
/* Iterate all the existing mlx4 devices. */
LIST_FOREACH(priv, &mlx4_mem_event_cb_list, mem_event_cb)
- mlx4_mr_mem_event_free_cb(priv->dev, addr, len);
+ mlx4_mr_mem_event_free_cb(ETH_DEV(priv), addr, len);
rte_rwlock_read_unlock(&mlx4_mem_event_rwlock);
break;
@@ -1029,5 +1029,5 @@ mlx4_rx_addr2mr_bh(struct rxq *rxq, uintptr_t addr)
DEBUG("Rx queue %u: miss on top-half, mru=%u, head=%u, addr=%p",
rxq->stats.idx, mr_ctrl->mru, mr_ctrl->head, (void *)addr);
- return mlx4_mr_addr2mr_bh(priv->dev, mr_ctrl, addr);
+ return mlx4_mr_addr2mr_bh(ETH_DEV(priv), mr_ctrl, addr);
}
@@ -1051,5 +1051,5 @@ mlx4_tx_addr2mr_bh(struct txq *txq, uintptr_t addr)
DEBUG("Tx queue %u: miss on top-half, mru=%u, head=%u, addr=%p",
txq->stats.idx, mr_ctrl->mru, mr_ctrl->head, (void *)addr);
- return mlx4_mr_addr2mr_bh(priv->dev, mr_ctrl, addr);
+ return mlx4_mr_addr2mr_bh(ETH_DEV(priv), mr_ctrl, addr);
}
@@ -1226,5 +1226,5 @@ mlx4_tx_update_ext_mp(struct txq *txq, uintptr_t addr, struct rte_mempool *mp)
struct mlx4_priv *priv = txq->priv;
- mlx4_mr_update_ext_mp(priv->dev, mr_ctrl, mp);
+ mlx4_mr_update_ext_mp(ETH_DEV(priv), mr_ctrl, mp);
return mlx4_tx_addr2mr_bh(txq, addr);
}
diff --git a/drivers/net/mlx4/mlx4_rxq.c b/drivers/net/mlx4/mlx4_rxq.c
index 3782c6baa..50f33eb0c 100644
--- a/drivers/net/mlx4/mlx4_rxq.c
+++ b/drivers/net/mlx4/mlx4_rxq.c
@@ -177,4 +177,5 @@ mlx4_rss_attach(struct mlx4_rss *rss)
struct ibv_wq *ind_tbl[rss->queues];
struct mlx4_priv *priv = rss->priv;
+ struct rte_eth_dev *dev = ETH_DEV(priv);
const char *msg;
unsigned int i = 0;
@@ -190,6 +191,6 @@ mlx4_rss_attach(struct mlx4_rss *rss)
struct rxq *rxq = NULL;
- if (id < priv->dev->data->nb_rx_queues)
- rxq = priv->dev->data->rx_queues[id];
+ if (id < dev->data->nb_rx_queues)
+ rxq = dev->data->rx_queues[id];
if (!rxq) {
ret = EINVAL;
@@ -270,5 +271,5 @@ error:
}
while (i--)
- mlx4_rxq_detach(priv->dev->data->rx_queues[rss->queue_id[i]]);
+ mlx4_rxq_detach(dev->data->rx_queues[rss->queue_id[i]]);
ERROR("mlx4: %s", msg);
--rss->usecnt;
@@ -292,4 +293,5 @@ mlx4_rss_detach(struct mlx4_rss *rss)
{
struct mlx4_priv *priv = rss->priv;
+ struct rte_eth_dev *dev = ETH_DEV(priv);
unsigned int i;
@@ -304,5 +306,5 @@ mlx4_rss_detach(struct mlx4_rss *rss)
rss->ind = NULL;
for (i = 0; i != rss->queues; ++i)
- mlx4_rxq_detach(priv->dev->data->rx_queues[rss->queue_id[i]]);
+ mlx4_rxq_detach(dev->data->rx_queues[rss->queue_id[i]]);
}
@@ -330,5 +332,5 @@ int
mlx4_rss_init(struct mlx4_priv *priv)
{
- struct rte_eth_dev *dev = priv->dev;
+ struct rte_eth_dev *dev = ETH_DEV(priv);
uint8_t log2_range = rte_log2_u32(dev->data->nb_rx_queues);
uint32_t wq_num_prev = 0;
@@ -339,5 +341,5 @@ mlx4_rss_init(struct mlx4_priv *priv)
if (priv->rss_init)
return 0;
- if (priv->dev->data->nb_rx_queues > priv->hw_rss_max_qps) {
+ if (ETH_DEV(priv)->data->nb_rx_queues > priv->hw_rss_max_qps) {
ERROR("RSS does not support more than %d queues",
priv->hw_rss_max_qps);
@@ -357,6 +359,6 @@ mlx4_rss_init(struct mlx4_priv *priv)
return -ret;
}
- for (i = 0; i != priv->dev->data->nb_rx_queues; ++i) {
- struct rxq *rxq = priv->dev->data->rx_queues[i];
+ for (i = 0; i != ETH_DEV(priv)->data->nb_rx_queues; ++i) {
+ struct rxq *rxq = ETH_DEV(priv)->data->rx_queues[i];
struct ibv_cq *cq;
struct ibv_wq *wq;
@@ -433,5 +435,5 @@ error:
i, msg, strerror(ret));
while (i--) {
- struct rxq *rxq = priv->dev->data->rx_queues[i];
+ struct rxq *rxq = ETH_DEV(priv)->data->rx_queues[i];
if (rxq)
@@ -458,6 +460,6 @@ mlx4_rss_deinit(struct mlx4_priv *priv)
if (!priv->rss_init)
return;
- for (i = 0; i != priv->dev->data->nb_rx_queues; ++i) {
- struct rxq *rxq = priv->dev->data->rx_queues[i];
+ for (i = 0; i != ETH_DEV(priv)->data->nb_rx_queues; ++i) {
+ struct rxq *rxq = ETH_DEV(priv)->data->rx_queues[i];
if (rxq) {
@@ -495,5 +497,5 @@ mlx4_rxq_attach(struct rxq *rxq)
struct mlx4_priv *priv = rxq->priv;
- struct rte_eth_dev *dev = priv->dev;
+ struct rte_eth_dev *dev = ETH_DEV(priv);
const uint32_t elts_n = 1 << rxq->elts_n;
const uint32_t sges_n = 1 << rxq->sges_n;
@@ -562,5 +564,5 @@ mlx4_rxq_attach(struct rxq *rxq)
/* Pre-register Rx mempool. */
DEBUG("port %u Rx queue %u registering mp %s having %u chunks",
- priv->dev->data->port_id, rxq->stats.idx,
+ ETH_DEV(priv)->data->port_id, rxq->stats.idx,
rxq->mp->name, rxq->mp->nb_mem_chunks);
mlx4_mr_update_mp(dev, &rxq->mr_ctrl, rxq->mp);
@@ -918,9 +920,9 @@ mlx4_rx_queue_release(void *dpdk_rxq)
return;
priv = rxq->priv;
- for (i = 0; i != priv->dev->data->nb_rx_queues; ++i)
- if (priv->dev->data->rx_queues[i] == rxq) {
+ for (i = 0; i != ETH_DEV(priv)->data->nb_rx_queues; ++i)
+ if (ETH_DEV(priv)->data->rx_queues[i] == rxq) {
DEBUG("%p: removing Rx queue %p from list",
- (void *)priv->dev, (void *)rxq);
- priv->dev->data->rx_queues[i] = NULL;
+ (void *)ETH_DEV(priv), (void *)rxq);
+ ETH_DEV(priv)->data->rx_queues[i] = NULL;
break;
}
diff --git a/drivers/net/mlx4/mlx4_txq.c b/drivers/net/mlx4/mlx4_txq.c
index 8142775fc..352700820 100644
--- a/drivers/net/mlx4/mlx4_txq.c
+++ b/drivers/net/mlx4/mlx4_txq.c
@@ -358,9 +358,9 @@ mlx4_tx_queue_release(void *dpdk_txq)
return;
priv = txq->priv;
- for (i = 0; i != priv->dev->data->nb_tx_queues; ++i)
- if (priv->dev->data->tx_queues[i] == txq) {
+ for (i = 0; i != ETH_DEV(priv)->data->nb_tx_queues; ++i)
+ if (ETH_DEV(priv)->data->tx_queues[i] == txq) {
DEBUG("%p: removing Tx queue %p from list",
- (void *)priv->dev, (void *)txq);
- priv->dev->data->tx_queues[i] = NULL;
+ (void *)ETH_DEV(priv), (void *)txq);
+ ETH_DEV(priv)->data->tx_queues[i] = NULL;
break;
}
--
2.20.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2019-04-30 17:58:13.919023416 +0100
+++ 0002-net-mlx4-change-device-reference-for-secondary-proce.patch 2019-04-30 17:58:13.746141028 +0100
@@ -1 +1 @@
-From 099c2c5376131b3d352d70f8904e586c0e84651e Mon Sep 17 00:00:00 2001
+From fbc7be121f71629834a60f50d4419932740bddd1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 099c2c5376131b3d352d70f8904e586c0e84651e ]
+
@@ -16,2 +17,0 @@
-Cc: stable at dpdk.org
-
@@ -32 +32 @@
-index 5ef2e7f41..bb6ab8ec6 100644
+index 8aa116cb7..4bc966d5f 100644
@@ -35 +35 @@
-@@ -754,9 +754,9 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
+@@ -753,9 +753,9 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
@@ -48 +48 @@
-index 7ac49ca67..51566caf7 100644
+index 180e5186c..fc568eb3e 100644
@@ -67 +67 @@
-index f4df4ab1f..038dc71d3 100644
+index f16037d1d..5136d136f 100644
@@ -70 +70 @@
-@@ -774,5 +774,5 @@ fill:
+@@ -768,5 +768,5 @@ fill:
@@ -77 +77 @@
-@@ -803,5 +803,5 @@ fill:
+@@ -797,5 +797,5 @@ fill:
@@ -84 +84 @@
-@@ -1073,6 +1073,6 @@ mlx4_flow_toggle(struct mlx4_priv *priv,
+@@ -1067,6 +1067,6 @@ mlx4_flow_toggle(struct mlx4_priv *priv,
@@ -93 +93 @@
-@@ -1259,5 +1259,5 @@ mlx4_flow_internal_next_vlan(struct mlx4_priv *priv, uint16_t vlan)
+@@ -1253,5 +1253,5 @@ mlx4_flow_internal_next_vlan(struct mlx4_priv *priv, uint16_t vlan)
@@ -100 +100 @@
-@@ -1336,5 +1336,5 @@ mlx4_flow_internal(struct mlx4_priv *priv, struct rte_flow_error *error)
+@@ -1330,5 +1330,5 @@ mlx4_flow_internal(struct mlx4_priv *priv, struct rte_flow_error *error)
@@ -107 +107 @@
-@@ -1358,7 +1358,7 @@ mlx4_flow_internal(struct mlx4_priv *priv, struct rte_flow_error *error)
+@@ -1352,7 +1352,7 @@ mlx4_flow_internal(struct mlx4_priv *priv, struct rte_flow_error *error)
@@ -117 +117 @@
-@@ -1440,5 +1440,5 @@ next_vlan:
+@@ -1434,5 +1434,5 @@ next_vlan:
@@ -124 +124 @@
-@@ -1456,13 +1456,14 @@ next_vlan:
+@@ -1450,13 +1450,14 @@ next_vlan:
@@ -142 +142 @@
-@@ -1478,14 +1479,14 @@ next_vlan:
+@@ -1472,14 +1473,14 @@ next_vlan:
@@ -160 +160 @@
-@@ -1504,5 +1505,6 @@ error:
+@@ -1498,5 +1499,6 @@ error:
@@ -168 +168 @@
-@@ -1542,5 +1544,6 @@ mlx4_flow_sync(struct mlx4_priv *priv, struct rte_flow_error *error)
+@@ -1536,5 +1538,6 @@ mlx4_flow_sync(struct mlx4_priv *priv, struct rte_flow_error *error)
@@ -176 +176 @@
-@@ -1575,5 +1578,5 @@ mlx4_flow_clean(struct mlx4_priv *priv)
+@@ -1569,5 +1572,5 @@ mlx4_flow_clean(struct mlx4_priv *priv)
More information about the stable
mailing list