diff mbox series

[ovs-dev,V2,1/8] dp-packet: Fix dp-packet may be used initialized

Message ID 20221116104727.915151-2-elibr@nvidia.com
State Deferred
Headers show
Series Fix warnings and enable Werror | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Eli Britstein Nov. 16, 2022, 10:47 a.m. UTC
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(-)
diff mbox series

Patch

diff --git a/lib/dp-packet.c b/lib/dp-packet.c
index 4538d2a61..f654752a1 100644
--- a/lib/dp-packet.c
+++ b/lib/dp-packet.c
@@ -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. */
diff --git a/lib/dp-packet.h b/lib/dp-packet.h
index 55eeaab2c..9864dfcbf 100644
--- a/lib/dp-packet.h
+++ b/lib/dp-packet.h
@@ -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 *