mbuf: explicit casts of reference counter

differences to the atomic16 are signed, but the
atomic16 itself is unsigned.  It needs to be
made explicit with casts.

Fixes: af75078fec ("first public release")
Fixes: a53aa2b9f3 ("mbuf: support attaching external buffer")
Cc: stable@dpdk.org

Signed-off-by: Andy Green <andy@warmcat.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
This commit is contained in:
Andy Green 2018-05-17 21:49:32 +08:00 committed by Thomas Monjalon
parent ee07d519ce
commit f6ffdf1c2c

View File

@ -806,7 +806,7 @@ rte_mbuf_refcnt_read(const struct rte_mbuf *m)
static inline void
rte_mbuf_refcnt_set(struct rte_mbuf *m, uint16_t new_value)
{
rte_atomic16_set(&m->refcnt_atomic, new_value);
rte_atomic16_set(&m->refcnt_atomic, (int16_t)new_value);
}
/* internal */
@ -837,8 +837,8 @@ rte_mbuf_refcnt_update(struct rte_mbuf *m, int16_t value)
*/
if (likely(rte_mbuf_refcnt_read(m) == 1)) {
++value;
rte_mbuf_refcnt_set(m, value);
return value;
rte_mbuf_refcnt_set(m, (uint16_t)value);
return (uint16_t)value;
}
return __rte_mbuf_refcnt_update(m, value);
@ -909,7 +909,7 @@ static inline void
rte_mbuf_ext_refcnt_set(struct rte_mbuf_ext_shared_info *shinfo,
uint16_t new_value)
{
rte_atomic16_set(&shinfo->refcnt_atomic, new_value);
rte_atomic16_set(&shinfo->refcnt_atomic, (int16_t)new_value);
}
/**
@ -929,8 +929,8 @@ rte_mbuf_ext_refcnt_update(struct rte_mbuf_ext_shared_info *shinfo,
{
if (likely(rte_mbuf_ext_refcnt_read(shinfo) == 1)) {
++value;
rte_mbuf_ext_refcnt_set(shinfo, value);
return value;
rte_mbuf_ext_refcnt_set(shinfo, (uint16_t)value);
return (uint16_t)value;
}
return (uint16_t)rte_atomic16_add_return(&shinfo->refcnt_atomic, value);