@@ -32,7 +32,6 @@ dp_packet_init__(struct dp_packet *b, size_t allocated, enum dp_packet_source so
dp_packet_reset_offsets(b);
pkt_metadata_init(&b->md, 0);
dp_packet_reset_cutlen(b);
- dp_packet_reset_offload(b);
/* Initialize implementation-specific fields of dp_packet. */
dp_packet_init_specific(b);
/* By default assume the packet type to be Ethernet. */
@@ -572,7 +572,8 @@ dp_packet_init_specific(struct dp_packet *p)
{
/* This initialization is needed for packets that do not come from DPDK
* interfaces, when vswitchd is built with --with-dpdk. */
- p->mbuf.ol_flags = p->mbuf.tx_offload = p->mbuf.packet_type = 0;
+ *dp_packet_ol_flags_ptr(p) = 0;
+ p->mbuf.tx_offload = p->mbuf.packet_type = 0;
p->mbuf.nb_segs = 1;
p->mbuf.next = NULL;
}
@@ -638,9 +639,9 @@ dp_packet_set_allocated(struct dp_packet *b, uint16_t s)
#else /* DPDK_NETDEV */
static inline void
-dp_packet_init_specific(struct dp_packet *p OVS_UNUSED)
+dp_packet_init_specific(struct dp_packet *p)
{
- /* There are no implementation-specific fields for initialization. */
+ *dp_packet_ol_flags_ptr(p) = 0;
}
static inline void *
With --enable-Werror and --with-dpdk=no: In function 'dp_packet_reset_offload', inlined from 'dp_packet_init__' at ../lib/dp-packet.c:35:5, inlined from 'dp_packet_use__' at ../lib/dp-packet.c:50:5, inlined from 'dp_packet_use' at ../lib/dp-packet.c:60:5, inlined from 'dp_packet_init' at ../lib/dp-packet.c:126:5, inlined from 'dp_packet_new' at ../lib/dp-packet.c:154:5: ../lib/dp-packet.h:944:32: error: 'MEM[(uint32_t *)p_14 + 16B]' may be used uninitialized [-Werror=maybe-uninitialized] 944 | *dp_packet_ol_flags_ptr(p) &= ~DP_PACKET_OL_SUPPORTED_MASK; | ^ Fixes: a47e2db209e4 ("dp-packet: Refactor offloading API.") Signed-off-by: Eli Britstein <elibr@nvidia.com> --- lib/dp-packet.c | 1 - lib/dp-packet.h | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-)