On 4/27/2020 3:12 PM, David Marchand wrote: > 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 > >
Got it, thanks for clarification.