GCC's -Wmaybe-uninitialized analysis cannot follow struct
initialization through bitfield reads. The warning is currently
masked by inline assembly elsewhere limiting analysis depth; it
surfaces once the EAL atomic and spinlock primitives switch to
compiler intrinsics.

Replace the struct initializer with an explicit memset() so the
full-width initialization is visible to the analyzer.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85301
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110743
Signed-off-by: Stephen Hemminger <[email protected]>
---
 drivers/net/zxdh/zxdh_msg.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/zxdh/zxdh_msg.c b/drivers/net/zxdh/zxdh_msg.c
index 4b01daf37a..8f88181a3f 100644
--- a/drivers/net/zxdh/zxdh_msg.c
+++ b/drivers/net/zxdh/zxdh_msg.c
@@ -728,13 +728,15 @@ zxdh_bar_chan_sync_msg_reps_get(uint64_t subchan_addr,
 int
 zxdh_bar_chan_sync_msg_send(struct zxdh_pci_bar_msg *in, struct 
zxdh_msg_recviver_mem *result)
 {
-       struct zxdh_bar_msg_header msg_header = {0};
+       struct zxdh_bar_msg_header msg_header;
        uint16_t seq_id = 0;
        uint64_t subchan_addr = 0;
        uint32_t time_out_cnt = 0;
        uint16_t valid = 0;
        int ret = 0;
 
+       memset(&msg_header, 0, sizeof(msg_header));
+
        ret = zxdh_bar_chan_send_para_check(in, result);
        if (ret != ZXDH_BAR_MSG_OK)
                goto exit;
-- 
2.53.0

Reply via email to