diff options
-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) { |