diff options
author | Shesha Sreenivasamurthy <shesha@cisco.com> | 2016-07-29 12:42:43 -0700 |
---|---|---|
committer | Shesha Sreenivasamurthy <shesha@cisco.com> | 2016-07-29 14:35:33 -0700 |
commit | 819e0f4845a8bf86a61b15741e516f2aca7ee0ed (patch) | |
tree | a4d9309d72319bc38b6487d5ccb79b516c63b44e /dpdk/dpdk-16.04_patches/0031-enic-fix-bug-introduced-with-scatter-rx.patch | |
parent | ae2d252039bf58e95202dcd695a2cd2a5d3eee9a (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>
Diffstat (limited to 'dpdk/dpdk-16.04_patches/0031-enic-fix-bug-introduced-with-scatter-rx.patch')
-rw-r--r-- | dpdk/dpdk-16.04_patches/0031-enic-fix-bug-introduced-with-scatter-rx.patch | 24 |
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) { |