Re: [PATCH v3 1/1] RDMA/rxe: Avoid -Wflex-array-member-not-at-end warnings
From: Gustavo A. R. Silva
Date: Tue Dec 23 2025 - 00:18:36 EST
On 12/23/25 14:10, Zhu Yanjun wrote:
在 2025/12/22 21:03, Gustavo A. R. Silva 写道:
On 12/23/25 13:41, Zhu Yanjun wrote:
From: "Gustavo A. R. Silva" <gustavoars@xxxxxxxxxx>
-Wflex-array-member-not-at-end was introduced in GCC-14, and we are
getting ready to enable it, globally.
Use the new TRAILING_OVERLAP() helper to fix the following warning:
21 drivers/infiniband/sw/rxe/rxe_verbs.h:271:33: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array- member-not-at-end]
This helper creates a union between a flexible-array member (FAM) and a
set of MEMBERS that would otherwise follow it.
This overlays the trailing MEMBER struct ib_sge sge[RXE_MAX_SGE]; onto
the FAM struct rxe_recv_wqe::dma.sge, while keeping the FAM and the
start of MEMBER aligned.
The static_assert() ensures this alignment remains, and it's
intentionally placed inmediately after the related structure --no
blank line in between.
Lastly, move the conflicting declaration struct rxe_resp_info resp;
to the end of the corresponding structure.
Reviewed-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxx>
Signed-off-by: Gustavo A. R. Silva <gustavoars@xxxxxxxxxx>
---
V2->V3: Replace struct ib_sge with struct rxe_sge
What are you doing?
Because struct rxe_sge differs from struct ib_sge, I aligned it to use the same structure.
Listen, this is not how things are done upstream. Read what I previously commented:
You're making a mess of this whole thing. Please, don't make changes
to my patches on your own.
and please, learn how to properly submit patch series.
Lastly, do the changes that you want/need to implement in your code, and don't
submit my patch as part of those changes again.
-Gustavo