On Mon, May 21, 2018 at 10:01:28AM +0800, Andy Green wrote: > /projects/lagopus/src/dpdk/build/include/rte_mbuf.h: > In function 'rte_pktmbuf_prepend': > /projects/lagopus/src/dpdk/build/include/rte_mbuf.h: > 1908:17: warning: conversion from 'int' to 'uint16_t' > {aka 'short unsigned int'} may change value [-Wconversion] > m->data_off -= len; > ^~~ > m->data_off is a uint16_t > > uint16_t data_off; > > len (a uint16_t) is promoted to an int using -=. Do the > subtraction explicitly and cast the result to uint16_t. > > - m->data_off -= len; > + m->data_off = (uint16_t)(m->data_off - len); > > The below += or -= changes are solving the same thing. > > /projects/lagopus/src/dpdk/build/include/rte_mbuf.h: > In function 'rte_pktmbuf_adj': > /projects/lagopus/src/dpdk/build/include/rte_mbuf.h: > 1969:17: warning: conversion from 'int' to 'uint16_t' > {aka 'short unsigned int'} may change value [-Wconversion] > m->data_off += len; > ^~~ > /projects/lagopus/src/dpdk/build/include/rte_mbuf.h: > In function 'rte_pktmbuf_chain': > /projects/lagopus/src/dpdk/build/include/rte_mbuf.h: > 2082:19: warning: conversion from 'int' to 'uint16_t' > {aka 'short unsigned int'} may change value [-Wconversion] > head->nb_segs += tail->nb_segs; > ^~~~ > Also uint16_t > > uint16_t nb_segs; /**< Number of segments. */ > > Fixes: 08b563ffb1 ("mbuf: replace data pointer by an offset") > Signed-off-by: Andy Green <a...@warmcat.com> > --- > lib/librte_mbuf/rte_mbuf.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h > index a0423a548..beb104c69 100644 > --- a/lib/librte_mbuf/rte_mbuf.h > +++ b/lib/librte_mbuf/rte_mbuf.h > @@ -1908,7 +1908,7 @@ static inline char *rte_pktmbuf_prepend(struct rte_mbuf > *m, > if (unlikely(len > rte_pktmbuf_headroom(m))) > return NULL; > > - m->data_off -= len; > + m->data_off = (uint16_t)(m->data_off - len); > m->data_len = (uint16_t)(m->data_len + len); > m->pkt_len = (m->pkt_len + len); > Code change looks ok to me, again it wouldn't hurt to have a comment explaining the absense of -=, but otherwise:
Acked-by: Bruce Richardson <bruce.richard...@intel.com>