On Mon, Apr 27, 2020 at 4:07 PM Ferruh Yigit <ferruh.yi...@intel.com> wrote: > > On 4/27/2020 3:00 PM, David Marchand wrote: > > On Mon, Apr 27, 2020 at 3:47 PM Ananyev, Konstantin > > <konstantin.anan...@intel.com> wrote: > >> > >> > >> > >>> -----Original Message----- > >>> From: dev <dev-boun...@dpdk.org> On Behalf Of David Marchand > >>> Sent: Monday, April 27, 2020 2:37 PM > >>> To: Richardson, Bruce <bruce.richard...@intel.com> > >>> Cc: dev <dev@dpdk.org>; Ori Kam <or...@mellanox.com>; Thomas Monjalon > >>> <tho...@monjalon.net>; Yigit, Ferruh > >>> <ferruh.yi...@intel.com>; Andrew Rybchenko <arybche...@solarflare.com>; > >>> Zhang, Xiao <xiao.zh...@intel.com> > >>> Subject: Re: [dpdk-dev] [PATCH 3/3] ethdev: fix build warning on 64-bit > >>> value > >>> > >>> On Mon, Apr 27, 2020 at 3:34 PM Bruce Richardson > >>> <bruce.richard...@intel.com> wrote: > >>>> > >>>> On Mon, Apr 27, 2020 at 03:23:41PM +0200, David Marchand wrote: > >>>>> Building OVS with dpdk, sparse complains about 64-bit constant being > >>>>> passed as a normal integer that can't fit it: > >>>>> error: constant 0xffffffffffffffff is so big it is unsigned long > >>>>> > >>>>> Fixes: ecbc8570131d ("ethdev: add PFCP header to flow API") > >>>>> > >>>>> Signed-off-by: David Marchand <david.march...@redhat.com> > >>>>> --- > >>>>> lib/librte_ethdev/rte_flow.h | 2 +- > >>>>> 1 file changed, 1 insertion(+), 1 deletion(-) > >>>>> > >>>>> diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h > >>>>> index 132b44edc6..1fb94f35e8 100644 > >>>>> --- a/lib/librte_ethdev/rte_flow.h > >>>>> +++ b/lib/librte_ethdev/rte_flow.h > >>>>> @@ -1534,7 +1534,7 @@ struct rte_flow_item_pfcp { > >>>>> #ifndef __cplusplus > >>>>> static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask = { > >>>>> .s_field = 0x01, > >>>>> - .seid = RTE_BE64(0xffffffffffffffff), > >>>>> + .seid = RTE_BE64(UINT64_C(0xffffffffffffffff)), > >>>> > >>>> Rather than cast, why not put "ULL" at the end. If we are going to cast, > >>>> why not just put "-1" in to save some digits. > >>> > >>> I preferred this form in the hope future developers who want > >>> 0x0fffffffffffffff will copy/paste this. > >>> > >> > >> As I remember there should be UINT64_MAX in stdint.h. > > > > Yes, we could go with: > > + .seid = RTE_BE64(UINT64_MAX), > > This is something else but if the value is 'UINT64_MAX', do we need 'RTE_BE64' > macro?
In OVS case, sparse validates that a rte_be64_t value (mapped to ovs_be64_t) is passed to .seid. .../build/install/usr/local/include/rte_flow.h:1537:17: error: incorrect type in initializer (different base types) .../build/install/usr/local/include/rte_flow.h:1537:17: expected restricted ovs_be64 [usertype] seid .../build/install/usr/local/include/rte_flow.h:1537:17: got unsigned long -- David Marchand