* [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS @ 2014-12-16 13:27 Bruce Richardson [not found] ` <1418736437-30585-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: Bruce Richardson @ 2014-12-16 13:27 UTC (permalink / raw) To: dev-VfR2kkLFssw The port mask parsing in testpmd allowed up to 64 bits to be processed, even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask. Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> --- app/test-pmd/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 69a83c2..c9d1e1c 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -1440,7 +1440,7 @@ set_fwd_ports_mask(uint64_t portmask) return; } nb_pt = 0; - for (i = 0; i < 64; i++) { + for (i = 0; i < 64 && i < RTE_MAX_ETHPORTS; i++) { if (! ((uint64_t)(1ULL << i) & portmask)) continue; portlist[nb_pt++] = i; -- 1.9.3 ^ permalink raw reply related [flat|nested] 7+ messages in thread
[parent not found: <1418736437-30585-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS [not found] ` <1418736437-30585-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> @ 2014-12-16 13:40 ` Thomas Monjalon 2014-12-16 13:50 ` Bruce Richardson 0 siblings, 1 reply; 7+ messages in thread From: Thomas Monjalon @ 2014-12-16 13:40 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev-VfR2kkLFssw 2014-12-16 13:27, Bruce Richardson: > The port mask parsing in testpmd allowed up to 64 bits to be processed, > even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only > processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask. [...] > - for (i = 0; i < 64; i++) { > + for (i = 0; i < 64 && i < RTE_MAX_ETHPORTS; i++) { Why not use RTE_MIN? -- Thomas ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS 2014-12-16 13:40 ` Thomas Monjalon @ 2014-12-16 13:50 ` Bruce Richardson 2014-12-16 14:09 ` Neil Horman 0 siblings, 1 reply; 7+ messages in thread From: Bruce Richardson @ 2014-12-16 13:50 UTC (permalink / raw) To: Thomas Monjalon; +Cc: dev-VfR2kkLFssw On Tue, Dec 16, 2014 at 02:40:09PM +0100, Thomas Monjalon wrote: > 2014-12-16 13:27, Bruce Richardson: > > The port mask parsing in testpmd allowed up to 64 bits to be processed, > > even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only > > processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask. > [...] > > - for (i = 0; i < 64; i++) { > > + for (i = 0; i < 64 && i < RTE_MAX_ETHPORTS; i++) { > > Why not use RTE_MIN? > > -- > Thomas Because this works equally well, and the change is simpler and clearer IMHO. However, if you feel very strongly about it, I can change it to use RTE_MIN instead. :-) /Bruce ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS 2014-12-16 13:50 ` Bruce Richardson @ 2014-12-16 14:09 ` Neil Horman [not found] ` <20141216140926.GD13806-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: Neil Horman @ 2014-12-16 14:09 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev-VfR2kkLFssw On Tue, Dec 16, 2014 at 01:50:06PM +0000, Bruce Richardson wrote: > On Tue, Dec 16, 2014 at 02:40:09PM +0100, Thomas Monjalon wrote: > > 2014-12-16 13:27, Bruce Richardson: > > > The port mask parsing in testpmd allowed up to 64 bits to be processed, > > > even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only > > > processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask. > > [...] > > > - for (i = 0; i < 64; i++) { > > > + for (i = 0; i < 64 && i < RTE_MAX_ETHPORTS; i++) { > > > > Why not use RTE_MIN? > > > > -- > > Thomas > > Because this works equally well, and the change is simpler and clearer IMHO. > However, if you feel very strongly about it, I can change it to use RTE_MIN > instead. :-) > > /Bruce > Please do, checking the same variable for being less than 2 different values isn't common practice. Its common, and far more readable to use a min function as Thomas indicates. It also saves you doing an extra comparison every loop iteration. Neil ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <20141216140926.GD13806-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>]
* [PATCH v2] testpmd: limit port mask bits to RTE_MAX_ETHPORTS [not found] ` <20141216140926.GD13806-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org> @ 2014-12-16 14:39 ` Bruce Richardson [not found] ` <1418740784-12155-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: Bruce Richardson @ 2014-12-16 14:39 UTC (permalink / raw) To: dev-VfR2kkLFssw The port mask parsing in testpmd allowed up to 64 bits to be processed, even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask. Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> --- V2: changed to use RTE_MIN in comparison, instead of double "<". --- app/test-pmd/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 69a83c2..97b6525 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -1440,7 +1440,7 @@ set_fwd_ports_mask(uint64_t portmask) return; } nb_pt = 0; - for (i = 0; i < 64; i++) { + for (i = 0; i < (unsigned)RTE_MIN(64, RTE_MAX_ETHPORTS); i++) { if (! ((uint64_t)(1ULL << i) & portmask)) continue; portlist[nb_pt++] = i; -- 1.9.3 ^ permalink raw reply related [flat|nested] 7+ messages in thread
[parent not found: <1418740784-12155-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH v2] testpmd: limit port mask bits to RTE_MAX_ETHPORTS [not found] ` <1418740784-12155-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> @ 2014-12-16 21:43 ` Neil Horman [not found] ` <20141216214343.GG13806-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: Neil Horman @ 2014-12-16 21:43 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev-VfR2kkLFssw On Tue, Dec 16, 2014 at 02:39:44PM +0000, Bruce Richardson wrote: > The port mask parsing in testpmd allowed up to 64 bits to be processed, > even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only > processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask. > > Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> > --- > V2: changed to use RTE_MIN in comparison, instead of double "<". > --- > app/test-pmd/config.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c > index 69a83c2..97b6525 100644 > --- a/app/test-pmd/config.c > +++ b/app/test-pmd/config.c > @@ -1440,7 +1440,7 @@ set_fwd_ports_mask(uint64_t portmask) > return; > } > nb_pt = 0; > - for (i = 0; i < 64; i++) { > + for (i = 0; i < (unsigned)RTE_MIN(64, RTE_MAX_ETHPORTS); i++) { > if (! ((uint64_t)(1ULL << i) & portmask)) > continue; > portlist[nb_pt++] = i; > -- > 1.9.3 > > I was thinking of assigning a new temp variable to the return of RTE_MIN so as to avoid the comparison within the for loop, but since both arguments are constant, I'm sure the compiler will avoid multiple comparisons. Acked-by: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <20141216214343.GG13806-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>]
* Re: [PATCH v2] testpmd: limit port mask bits to RTE_MAX_ETHPORTS [not found] ` <20141216214343.GG13806-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org> @ 2014-12-17 0:09 ` Thomas Monjalon 0 siblings, 0 replies; 7+ messages in thread From: Thomas Monjalon @ 2014-12-17 0:09 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev-VfR2kkLFssw 2014-12-16 16:43, Neil Horman: > On Tue, Dec 16, 2014 at 02:39:44PM +0000, Bruce Richardson wrote: > > The port mask parsing in testpmd allowed up to 64 bits to be processed, > > even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only > > processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask. > > > > Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> > > --- > > V2: changed to use RTE_MIN in comparison, instead of double "<". > > I was thinking of assigning a new temp variable to the return of RTE_MIN so as > to avoid the comparison within the for loop, but since both arguments are > constant, I'm sure the compiler will avoid multiple comparisons. > > Acked-by: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> Applied Thanks -- Thomas ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-12-17 0:09 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-12-16 13:27 [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS Bruce Richardson [not found] ` <1418736437-30585-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 2014-12-16 13:40 ` Thomas Monjalon 2014-12-16 13:50 ` Bruce Richardson 2014-12-16 14:09 ` Neil Horman [not found] ` <20141216140926.GD13806-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org> 2014-12-16 14:39 ` [PATCH v2] " Bruce Richardson [not found] ` <1418740784-12155-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 2014-12-16 21:43 ` Neil Horman [not found] ` <20141216214343.GG13806-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org> 2014-12-17 0:09 ` Thomas Monjalon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).