[dpdk-dev] eventdev: limit port link operation to configured queues

Message ID 1486358977-16542-1-git-send-email-jerin.jacob@caviumnetworks.com (mailing list archive)
State Accepted, archived
Delegated to: Bruce Richardson
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel compilation success Compilation OK

Commit Message

Jerin Jacob Feb. 6, 2017, 5:29 a.m. UTC
  On port_setup, the link_map is updated only
for configured number of event queues.
Limit the port_links_get scan only to configured number
of event queues. Also, Limit the port link and unlink queue
validation to configured number of event queues.

Fixes: 8ca610e0487c ("eventdev: implement the northbound APIs")

Reported-by: Nipun Gupta <nipun.gupta@nxp.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
 lib/librte_eventdev/rte_eventdev.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Nipun Gupta Feb. 7, 2017, 10 a.m. UTC | #1
> -----Original Message-----
> From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com]
> Sent: Monday, February 06, 2017 11:00
> To: dev@dpdk.org
> Cc: bruce.richardson@intel.com; Hemant Agrawal
> <hemant.agrawal@nxp.com>; gage.eads@intel.com;
> harry.van.haaren@intel.com; Nipun Gupta <nipun.gupta@nxp.com>; Jerin Jacob
> <jerin.jacob@caviumnetworks.com>
> Subject: [dpdk-dev] [PATCH] eventdev: limit port link operation to configured
> queues
> 
> On port_setup, the link_map is updated only
> for configured number of event queues.
> Limit the port_links_get scan only to configured number
> of event queues. Also, Limit the port link and unlink queue
> validation to configured number of event queues.
> 
> Fixes: 8ca610e0487c ("eventdev: implement the northbound APIs")
> 
> Reported-by: Nipun Gupta <nipun.gupta@nxp.com>
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
  
Bruce Richardson Feb. 15, 2017, 2:53 p.m. UTC | #2
On Tue, Feb 07, 2017 at 10:00:10AM +0000, Nipun Gupta wrote:
> 
> 
> > -----Original Message-----
> > From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com]
> > Sent: Monday, February 06, 2017 11:00
> > To: dev@dpdk.org
> > Cc: bruce.richardson@intel.com; Hemant Agrawal
> > <hemant.agrawal@nxp.com>; gage.eads@intel.com;
> > harry.van.haaren@intel.com; Nipun Gupta <nipun.gupta@nxp.com>; Jerin Jacob
> > <jerin.jacob@caviumnetworks.com>
> > Subject: [dpdk-dev] [PATCH] eventdev: limit port link operation to configured
> > queues
> > 
> > On port_setup, the link_map is updated only
> > for configured number of event queues.
> > Limit the port_links_get scan only to configured number
> > of event queues. Also, Limit the port link and unlink queue
> > validation to configured number of event queues.
> > 
> > Fixes: 8ca610e0487c ("eventdev: implement the northbound APIs")
> > 
> > Reported-by: Nipun Gupta <nipun.gupta@nxp.com>
> > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> 
> Acked-by: Nipun Gupta <nipun.gupta@nxp.com>

Applied to dpdk-next-eventdev

Please note too, that next-eventdev tree has been rebased on top of the
mainline 17.02 release. This should make it easier to merge in the 17.05
timeframe.

/Bruce
  

Patch

diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c
index 2c5277a..09fc274 100644
--- a/lib/librte_eventdev/rte_eventdev.c
+++ b/lib/librte_eventdev/rte_eventdev.c
@@ -798,7 +798,7 @@  rte_event_port_link(uint8_t dev_id, uint8_t port_id,
 	}
 
 	for (i = 0; i < nb_links; i++)
-		if (queues[i] >= RTE_EVENT_MAX_QUEUES_PER_DEV)
+		if (queues[i] >= dev->data->nb_queues)
 			return -EINVAL;
 
 	diag = (*dev->dev_ops->port_link)(dev->data->ports[port_id], queues,
@@ -843,7 +843,7 @@  rte_event_port_unlink(uint8_t dev_id, uint8_t port_id,
 	}
 
 	for (i = 0; i < nb_unlinks; i++)
-		if (queues[i] >= RTE_EVENT_MAX_QUEUES_PER_DEV)
+		if (queues[i] >= dev->data->nb_queues)
 			return -EINVAL;
 
 	diag = (*dev->dev_ops->port_unlink)(dev->data->ports[port_id], queues,
@@ -879,7 +879,7 @@  rte_event_port_links_get(uint8_t dev_id, uint8_t port_id,
 	links_map = dev->data->links_map;
 	/* Point links_map to this port specific area */
 	links_map += (port_id * RTE_EVENT_MAX_QUEUES_PER_DEV);
-	for (i = 0; i < RTE_EVENT_MAX_QUEUES_PER_DEV; i++) {
+	for (i = 0; i < dev->data->nb_queues; i++) {
 		if (links_map[i] != EVENT_QUEUE_SERVICE_PRIORITY_INVALID) {
 			queues[count] = i;
 			priorities[count] = (uint8_t)links_map[i];