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

David Marchand david.marchand at redhat.com
Mon Apr 27 15:40:30 CEST 2020


On Mon, Apr 27, 2020 at 3:39 PM Andrew Rybchenko
<arybchenko at solarflare.com> wrote:
>
> On 4/27/20 4:34 PM, Bruce Richardson 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.
>
> It is not a cast as far as I can see, it is exactly ULL (or UL):
> /usr/include/stdint.h
> # if __WORDSIZE == 64
> #  define UINT64_C(c)   c ## UL
> # else
> #  define UINT64_C(c)   c ## ULL
> # endif

Yes.


-- 
David Marchand



More information about the dev mailing list