Re: [PATCH v3 1/1] RDMA/rxe: Avoid -Wflex-array-member-not-at-end warnings

From: Zhu Yanjun

Date: Tue Dec 23 2025 - 11:14:09 EST



在 2025/12/23 6:20, Leon Romanovsky 写道:
On Mon, Dec 22, 2025 at 09:10:11PM -0800, 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.
Zhu,

Please submit your rxe_sge to ib_sge change as standalone patch and
Gustavo will resubmit his patch later if he wants so.


OK. I will do soon.

Yanjun.Zhu



Thanks

--
Best Regards,
Yanjun.Zhu