From mboxrd@z Thu Jan 1 00:00:00 1970 From: cgxu519 Subject: Re: [PATCH v2 net] nfp: cast sizeof() to int when comparing with error code Date: Tue, 26 Jun 2018 10:48:19 +0800 Message-ID: <519927e4-ea40-927a-4e56-0d87e7313934@gmx.com> References: <20180626011631.22717-1-cgxu519@gmx.com> <308957d91294ec1883ec492eecb8ffe1d51a0689.camel@perches.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: oss-drivers@netronome.com, netdev@vger.kernel.org To: Joe Perches , jakub.kicinski@netronome.com, davem@davemloft.net Return-path: Received: from mout.gmx.net ([212.227.17.21]:53869 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964804AbeFZCse (ORCPT ); Mon, 25 Jun 2018 22:48:34 -0400 In-Reply-To: <308957d91294ec1883ec492eecb8ffe1d51a0689.camel@perches.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 06/26/2018 10:29 AM, Joe Perches wrote: > On Tue, 2018-06-26 at 09:16 +0800, Chengguang Xu wrote: >> sizeof() will return unsigned value so in the error check >> negative error code will be always larger than sizeof(). > [] >> diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c > [] >> @@ -232,7 +232,7 @@ struct nfp_nffw_info *nfp_nffw_info_open(struct nfp_cpp *cpp) >> err = nfp_cpp_read(cpp, nfp_resource_cpp_id(state->res), >> nfp_resource_address(state->res), >> fwinf, sizeof(*fwinf)); >> - if (err < sizeof(*fwinf)) >> + if (err < (int)sizeof(*fwinf)) >> goto err_release; >> >> if (!nffw_res_flg_init_get(fwinf)) > The way this is done in several places in the kernel is > to test first for < 0 and then test for < sizeof > > if (err < 0 || err < sizeof(etc...) > > see net/ceph/ceph_common.c etc... If we need to distinguish the cases <0 and >0 &&