summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dpdk/dpdk-16.04_patches/0031-enic-fix-bug-introduced-with-scatter-rx.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/dpdk/dpdk-16.04_patches/0031-enic-fix-bug-introduced-with-scatter-rx.patch b/dpdk/dpdk-16.04_patches/0031-enic-fix-bug-introduced-with-scatter-rx.patch
new file mode 100644
index 00000000000..88586ebc238
--- /dev/null
+++ b/dpdk/dpdk-16.04_patches/0031-enic-fix-bug-introduced-with-scatter-rx.patch
@@ -0,0 +1,24 @@
+commit f0ca43396ebeb85228f9737a52caa68fc06aa9ee
+Author: Nelson Escobar <neescoba@cisco.com>
+Date: Mon Jun 13 17:24:41 2016 -0700
+
+ enic: fix bug introduced with scatter rx
+
+ We did not properly set the rq pointers we pass up to dpdk when
+ rx scatter was introduced. This resulted in segfaults whenever
+ more than one rq was being used.
+
+diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
+index e5b84e1..66fddb1 100644
+--- a/drivers/net/enic/enic_ethdev.c
++++ b/drivers/net/enic/enic_ethdev.c
+@@ -279,7 +279,8 @@ static int enicpmd_dev_rx_queue_setup(struct rte_eth_dev *eth_dev,
+ return -EINVAL;
+ }
+
+- eth_dev->data->rx_queues[queue_idx] = (void *)&enic->rq[queue_idx];
++ eth_dev->data->rx_queues[queue_idx] =
++ (void *)&enic->rq[enic_sop_rq(enic, queue_idx)];
+
+ ret = enic_alloc_rq(enic, queue_idx, socket_id, mp, nb_desc);
+ if (ret) {