enic: fix bug introduced with scatter rx 40/2140/2
authorShesha Sreenivasamurthy <[email protected]>
Fri, 29 Jul 2016 19:42:43 +0000 (12:42 -0700)
committerShesha Sreenivasamurthy <[email protected]>
Fri, 29 Jul 2016 21:35:33 +0000 (14:35 -0700)
    Author: Nelson Escobar <[email protected]>
    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 <[email protected]>
dpdk/dpdk-16.04_patches/0031-enic-fix-bug-introduced-with-scatter-rx.patch [new file with mode: 0644]

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 (file)
index 0000000..88586eb
--- /dev/null
@@ -0,0 +1,24 @@
+commit f0ca43396ebeb85228f9737a52caa68fc06aa9ee
+Author: Nelson Escobar <[email protected]>
+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) {