a292c8c357
Change-Id: Ic2a6e6f1ceea81f2e34f3db370682569327b44ad Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
67 lines
2.3 KiB
Diff
67 lines
2.3 KiB
Diff
From ce6badc60736f5e78a295f30fe84c3e40ad0c330 Mon Sep 17 00:00:00 2001
|
|
From: Nelson Escobar <neescoba@cisco.com>
|
|
Date: Fri, 18 Mar 2016 11:33:34 -0700
|
|
Subject: [PATCH 20/22] enic: fix Rx descriptor limit
|
|
|
|
On initialization, the rq descriptor count was set to the limit
|
|
of the vic. When the requested number of rx descriptors was
|
|
less than this count, enic_alloc_rq() was incorrectly setting
|
|
the count to the lower value. This results in later calls to
|
|
enic_alloc_rq() incorrectly using the lower value as the adapter
|
|
limit.
|
|
|
|
Fixes: fefed3d1e62c ("enic: new driver")
|
|
|
|
Signed-off-by: Nelson Escobar <neescoba@cisco.com>
|
|
Reviewed-by: John Daley <johndale@cisco.com>
|
|
---
|
|
drivers/net/enic/enic_main.c | 14 ++++++--------
|
|
1 file changed, 6 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
|
|
index e30672c..2f79cf0 100644
|
|
--- a/drivers/net/enic/enic_main.c
|
|
+++ b/drivers/net/enic/enic_main.c
|
|
@@ -524,24 +524,22 @@ int enic_alloc_rq(struct enic *enic, uint16_t queue_idx,
|
|
"policy. Applying the value in the adapter "\
|
|
"policy (%d).\n",
|
|
queue_idx, nb_desc, enic->config.rq_desc_count);
|
|
- } else if (nb_desc != enic->config.rq_desc_count) {
|
|
- enic->config.rq_desc_count = nb_desc;
|
|
- dev_info(enic,
|
|
- "RX Queues - effective number of descs:%d\n",
|
|
- nb_desc);
|
|
+ nb_desc = enic->config.rq_desc_count;
|
|
}
|
|
+ dev_info(enic, "RX Queues - effective number of descs:%d\n",
|
|
+ nb_desc);
|
|
}
|
|
|
|
/* Allocate queue resources */
|
|
rc = vnic_rq_alloc(enic->vdev, rq, queue_idx,
|
|
- enic->config.rq_desc_count, sizeof(struct rq_enet_desc));
|
|
+ nb_desc, sizeof(struct rq_enet_desc));
|
|
if (rc) {
|
|
dev_err(enic, "error in allocation of rq\n");
|
|
goto err_exit;
|
|
}
|
|
|
|
rc = vnic_cq_alloc(enic->vdev, &enic->cq[queue_idx], queue_idx,
|
|
- socket_id, enic->config.rq_desc_count,
|
|
+ socket_id, nb_desc,
|
|
sizeof(struct cq_enet_rq_desc));
|
|
if (rc) {
|
|
dev_err(enic, "error in allocation of cq for rq\n");
|
|
@@ -550,7 +548,7 @@ int enic_alloc_rq(struct enic *enic, uint16_t queue_idx,
|
|
|
|
/* Allocate the mbuf ring */
|
|
rq->mbuf_ring = (struct rte_mbuf **)rte_zmalloc_socket("rq->mbuf_ring",
|
|
- sizeof(struct rte_mbuf *) * enic->config.rq_desc_count,
|
|
+ sizeof(struct rte_mbuf *) * nb_desc,
|
|
RTE_CACHE_LINE_SIZE, rq->socket_id);
|
|
|
|
if (rq->mbuf_ring != NULL)
|
|
--
|
|
1.9.1
|
|
|