[dpdk-dev] [PATCH 1/1] ip_pipeline: fixed parsing cpu cores

Maciej Gajdzica maciejx.t.gajdzica at intel.com
Tue Jul 21 16:39:00 CEST 2015


This patch fixes parsing value of core variable in pipeline config.
Before not every combination of cores (c), sockets (s) and
hyperthreading (h) was parsed correctly.

Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica at intel.com>
---
 examples/ip_pipeline/config_parse.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/examples/ip_pipeline/config_parse.c b/examples/ip_pipeline/config_parse.c
index 361bf8a..c9b78f9 100644
--- a/examples/ip_pipeline/config_parse.c
+++ b/examples/ip_pipeline/config_parse.c
@@ -386,14 +386,14 @@ parse_pipeline_core(uint32_t *socket,
 		switch (type) {
 		case 's':
 		case 'S':
-			if (s_parsed)
+			if (s_parsed || c_parsed || h_parsed)
 				return -EINVAL;
 			s_parsed = 1;
 			next++;
 			break;
 		case 'c':
 		case 'C':
-			if (c_parsed)
+			if (c_parsed || h_parsed)
 				return -EINVAL;
 			c_parsed = 1;
 			next++;
@@ -423,7 +423,10 @@ parse_pipeline_core(uint32_t *socket,
 			num[num_len] = *next;
 		}
 
-		if (num_len == 0 && type != 'h')
+		if (num_len == 0 && type != 'h' && type != 'H')
+			return -EINVAL;
+
+		if (num_len != 0 && (type == 'h' || type == 'H'))
 			return -EINVAL;
 
 		num[num_len] = '\0';
@@ -438,9 +441,6 @@ parse_pipeline_core(uint32_t *socket,
 		case 'c':
 		case 'C':
 			c = val;
-			if (type == 'C' && *next != '\0')
-				return -EINVAL;
-
 			break;
 		case 'h':
 		case 'H':
-- 
1.7.9.5



More information about the dev mailing list