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

