[dpdk-dev] [PATCH v6 6/8] rte_mbuf.h: choose correct type for temp

Bruce Richardson bruce.richardson at intel.com
Mon May 21 15:09:37 CEST 2018


On Mon, May 21, 2018 at 10:01:23AM +0800, Andy Green wrote:
> /projects/lagopus/src/dpdk/build/include/rte_mbuf.h:
> In function 'rte_pktmbuf_linearize':
> /projects/lagopus/src/dpdk/build/include/rte_mbuf.h:
> 1873:32: warning: conversion to 'int' from 'uint32_t'
> {aka 'unsigned int'} may change the sign of the
> result [-Wsign-conversion]
> #define rte_pktmbuf_pkt_len(m) ((m)->pkt_len)
>                                     ^
> /projects/lagopus/src/dpdk/build/include/rte_mbuf.h:
> 2166:13: note: in expansion of macro 'rte_pktmbuf_pkt_len'
>    copy_len = rte_pktmbuf_pkt_len(mbuf) -
> rte_pktmbuf_data_len(mbuf);
>                  ^~~~~~~~~~~~~~~~~~~
> /projects/lagopus/src/dpdk/build/include/rte_mbuf.h:
> 2180:51: warning: conversion to 'size_t' {aka
> 'long unsigned int'} from 'int' may change the
> sign of the result [-Wsign-conversion]
> rte_memcpy(buffer, rte_pktmbuf_mtod(m, char *), seg_len);
>                                                 ^~~~~~~
> 
> The temp is consumed as a size_t.  So let's make it
> a size_t in the first place.
> 
> Fixes: 1feda4d8fc ("mbuf: add a function to linearize a packet")
> Signed-off-by: Andy Green <andy at warmcat.com>
> ---
>  lib/librte_mbuf/rte_mbuf.h |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
> index 55fba3b14..a0423a548 100644
> --- a/lib/librte_mbuf/rte_mbuf.h
> +++ b/lib/librte_mbuf/rte_mbuf.h
> @@ -2158,7 +2158,7 @@ rte_validate_tx_offload(const struct rte_mbuf *m)
>  static inline int
>  rte_pktmbuf_linearize(struct rte_mbuf *mbuf)
>  {
> -	int seg_len, copy_len;
> +	size_t seg_len, copy_len;
>  	struct rte_mbuf *m;
>  	struct rte_mbuf *m_next;
>  	char *buffer;
> 
Looks reasonable.

Acked-by: Bruce Richardson <bruce.richardson at intel.com>



More information about the dev mailing list