aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShesha Sreenivasamurthy <shesha@cisco.com>2016-07-29 12:42:43 -0700
committerShesha Sreenivasamurthy <shesha@cisco.com>2016-07-29 14:35:33 -0700
commit819e0f4845a8bf86a61b15741e516f2aca7ee0ed (patch)
treea4d9309d72319bc38b6487d5ccb79b516c63b44e
parentae2d252039bf58e95202dcd695a2cd2a5d3eee9a (diff)
enic: fix bug introduced with scatter rx
Author: Nelson Escobar <neescoba@cisco.com> Date: Mon Jun 13 17:24:41 2016 -0700 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. Change-Id: I77a9793ea9035baa1ada77d3af7bc83baf58d097 Signed-off-by: Shesha Sreenivasamurthy <shesha@cisco.com>
-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) {