From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 1BC41A0679 for ; Tue, 30 Apr 2019 19:01:50 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7DC0C58CB; Tue, 30 Apr 2019 19:01:49 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 1291C58CB for ; Tue, 30 Apr 2019 19:01:47 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EA19D30A1898; Tue, 30 Apr 2019 17:01:46 +0000 (UTC) Received: from rh.redhat.com (ovpn-117-211.ams2.redhat.com [10.36.117.211]) by smtp.corp.redhat.com (Postfix) with ESMTP id 783A86D0A9; Tue, 30 Apr 2019 17:01:45 +0000 (UTC) From: Kevin Traynor To: Yongseok Koh Cc: Raslan Darawsheh , Shahaf Shuler , dpdk stable Date: Tue, 30 Apr 2019 18:00:57 +0100 Message-Id: <20190430170133.2331-2-ktraynor@redhat.com> In-Reply-To: <20190430170133.2331-1-ktraynor@redhat.com> References: <20190430170133.2331-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Tue, 30 Apr 2019 17:01:47 +0000 (UTC) Subject: [dpdk-stable] patch 'net/mlx4: change device reference for secondary process' has been queued to LTS release 18.11.2 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" 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 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 Signed-off-by: Yongseok Koh Acked-by: Shahaf Shuler --- 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@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)