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

Reply via email to