From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH] lib/librte_ip_frag:fix ip_frag_key_cmp bug Date: Thu, 9 Aug 2018 13:40:27 +0100 Message-ID: <314a4cdf-68cc-9300-5e9f-e64423caca4d@intel.com> References: <1533175263-4642-1-git-send-email-han.li1@zte.com.cn> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: dev@dpdk.org To: Li Han , konstantin.ananyev@intel.com Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 9A8BCFEB for ; Thu, 9 Aug 2018 14:40:31 +0200 (CEST) In-Reply-To: <1533175263-4642-1-git-send-email-han.li1@zte.com.cn> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 8/2/2018 3:01 AM, Li Han wrote: > in struct ip_frag_key,src_dst[] type is uint64_t. > but "val" which to store the calc restult ,type is uint32_t. > we may lost high 32 bit key. and function return value is int, > but it won't return < 0. > > Signed-off-by: Li Han Fix looks good to me [1], but not sure if it worth getting risk to merge it after rc3, taking into account that original code is from 2014. [1] perhaps no need to make "i" uint64_t > --- > lib/librte_ip_frag/ip_frag_common.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/lib/librte_ip_frag/ip_frag_common.h b/lib/librte_ip_frag/ip_frag_common.h > index 197acf8..ca69680 100644 > --- a/lib/librte_ip_frag/ip_frag_common.h > +++ b/lib/librte_ip_frag/ip_frag_common.h > @@ -69,10 +69,10 @@ struct ip_frag_pkt * ip_frag_lookup(struct rte_ip_frag_tbl *tbl, > } > > /* compare two keys */ > -static inline int > +static inline uint64_t > ip_frag_key_cmp(const struct ip_frag_key * k1, const struct ip_frag_key * k2) > { > - uint32_t i, val; > + uint64_t i, val; > val = k1->id ^ k2->id; > for (i = 0; i < k1->key_len; i++) > val |= k1->src_dst[i] ^ k2->src_dst[i]; >