[dpdk-dev] [PATCH 3/3] ethdev: fix build warning on 64-bit value

David Marchand david.marchand at redhat.com
Mon Apr 27 16:00:23 CEST 2020


On Mon, Apr 27, 2020 at 3:47 PM Ananyev, Konstantin
<konstantin.ananyev at intel.com> wrote:
>
>
>
> > -----Original Message-----
> > From: dev <dev-bounces at dpdk.org> On Behalf Of David Marchand
> > Sent: Monday, April 27, 2020 2:37 PM
> > To: Richardson, Bruce <bruce.richardson at intel.com>
> > Cc: dev <dev at dpdk.org>; Ori Kam <orika at mellanox.com>; Thomas Monjalon <thomas at monjalon.net>; Yigit, Ferruh
> > <ferruh.yigit at intel.com>; Andrew Rybchenko <arybchenko at solarflare.com>; Zhang, Xiao <xiao.zhang at 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.richardson at 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.marchand at 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),

And then next time, for any value like 0x0fff ffff ffff ffff (had to
group the digits of what I had written), pretty sure we will miss this
and I will catch it only when building ovs.


--
David Marchand



More information about the dev mailing list