From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id EC9B73F9 for ; Tue, 16 Dec 2014 22:43:52 +0100 (CET) Received: from hmsreliant.think-freely.org ([2001:470:8:a08:7aac:c0ff:fec2:933b] helo=localhost) by smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63) (envelope-from ) id 1Y0zuH-0003H7-My; Tue, 16 Dec 2014 16:43:51 -0500 Date: Tue, 16 Dec 2014 16:43:43 -0500 From: Neil Horman To: Bruce Richardson Message-ID: <20141216214343.GG13806@hmsreliant.think-freely.org> References: <20141216140926.GD13806@hmsreliant.think-freely.org> <1418740784-12155-1-git-send-email-bruce.richardson@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1418740784-12155-1-git-send-email-bruce.richardson@intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Score: -2.9 (--) X-Spam-Status: No Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v2] testpmd: limit port mask bits to RTE_MAX_ETHPORTS X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2014 21:43:53 -0000 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 > --- > 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