From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: "Gustavo A. R. Silva" <gustavo@embeddedor.com>,
Leon Romanovsky <leon@kernel.org>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
"Gustavo A. R. Silva" <gustavoars@kernel.org>,
Zhu Yanjun <zyjzyj2000@gmail.com>,
linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-hardening@vger.kernel.org
Subject: Re: [PATCH][next] RDMA/rxe: Avoid -Wflex-array-member-not-at-end warnings
Date: Thu, 18 Dec 2025 21:27:30 -0800 [thread overview]
Message-ID: <01b419f6-264e-4faa-b4df-480fdf952d14@linux.dev> (raw)
In-Reply-To: <d569b5fd-fcca-4dd0-b94b-a6df4e52d940@embeddedor.com>
在 2025/12/18 20:35, Gustavo A. R. Silva 写道:
>
>
> On 12/19/25 13:29, Zhu Yanjun wrote:
>>
>> 在 2025/12/18 18:51, Gustavo A. R. Silva 写道:
>>>
>>>
>>> On 12/19/25 04:22, Yanjun.Zhu wrote:
>>>>
>>>> On 12/18/25 7:56 AM, Leon Romanovsky wrote:
>>>>> On Sun, Dec 14, 2025 at 09:00:51PM -0800, Zhu Yanjun wrote:
>>>>>>
>>>>>> 在 2025/12/5 20:41, Zhu Yanjun 写道:
>>>>>>>
>>>>>>> 在 2025/12/4 9:48, yanjun.zhu 写道:
>>>>>>>> On 12/4/25 5:05 AM, Jason Gunthorpe wrote:
>>>>>>>>> On Wed, Dec 03, 2025 at 09:08:45PM -0800, Zhu Yanjun wrote:
>>>>>>>>>>> unsigned int res_head;
>>>>>>>>>>> unsigned int res_tail;
>>>>>>>>>>> struct resp_res *res;
>>>>>>>>>>> +
>>>>>>>>>>> + /* SRQ only. srq_wqe.dma.sge is a flex array */
>>>>>>>>>>> + struct rxe_recv_wqe srq_wqe;
>>>>>>>>>> drivers/infiniband/sw/rxe/rxe_resp.c: In function get_srq_wqe:
>>>>>>>>>> drivers/infiniband/sw/rxe/rxe_resp.c:289:41: error: struct
>>>>>>>>>> rxe_recv_wqe has
>>>>>>>>>> no member named wqe
>>>>>>>>>> 289 | qp->resp.wqe = &qp->resp.srq_wqe.wqe;
>>>>>>>>>> | ^
>>>>>>>>> I didn't try to fix all the typos, you will need to do that.
>>>>>>>> Exactly. I will fix this problem. This weekend, I will send out an
>>>>>>>> official commit.
>>>>>>> Hi, Jason
>>>>>>>
>>>>>>> The followings are based on your commits and Leon's commits. And
>>>>>>> it can
>>>>>>> pass the rdma-core tests.
>>>>>>>
>>>>>>> I am not sure if this commit is good or not.
>>>>>> Hi, Jason && Leon
>>>>>>
>>>>>> Any update? If this looks good to you, I will send out an official
>>>>>> commit
>>>>>> based on the following commit.
>>>>> You are RXE maintainer, send the official patch.
>>>>
>>>> Will do. I will send it out very soon.
>>>
>>> I don't see how this addresses the flex-array in the middle issue that
>>> originated this discussion.
>>
>> Could you please explain this in more detail?
>> Also, if you have a better approach, would you mind sending a new
>> commit for discussion?
>
> This is exactly what my original patch is about. I've explained this a
> couple of times
> in this thread already.
In your original patch, I have the following problem. I read all your
replies. But I can not find your answers to my problem.
My problem is as below:
1. The followings are the declaration of __TRAILING_OVERLAP
/**
* __TRAILING_OVERLAP() - Overlap a flexible-array member with trailing
* members.
*
* Creates a union between a flexible-array member (FAM) in a struct
and a set
* of additional members that would otherwise follow it.
*
* @TYPE: Flexible structure type name, including "struct" keyword.
* @NAME: Name for a variable to define.
* @FAM: The flexible-array member within @TYPE <----- Here
* @ATTRS: Any struct attributes (usually empty)
* @MEMBERS: Trailing overlapping members.
*/
#define __TRAILING_OVERLAP(TYPE, NAME, FAM, ATTRS, MEMBERS) \
union { \
TYPE NAME; \
struct { \
unsigned char __offset_to_FAM[offsetof(TYPE, FAM)]; \
MEMBERS \
} ATTRS; \
}
2. I expanded the above MACRO __TRAILING_OVERLAP into the following
following the definition in your commit.
union {
struct rxe_recv_wqe wqe;
struct {
unsigned char __offset_to_FAM[offsetof(struct rxe_recv_wqe,
dma.sge)]; \
struct ib_sge sge[RXE_MAX_SGE];
} ;
}srq_wqe;
3. In your original commit, dma.sge should be the member of struct
rxe_recv_wqe. The struct rxe_recv_wqe is as below.
"@FAM: The flexible-array member within @TYPE"
The struct rxe_recv_wqe is as below.
struct rxe_recv_wqe {
__aligned_u64 wr_id;
__u32 reserved;
__u32 padding;
struct rxe_dma_info dma;
};
But I can not find dma.sge in the above struct. Can you explain it?
To be honest, I read your original commit for several times, but I can
not get it. Can you explain the MACRO TRAILING_OVERLAP? And how can it
replace the following struct?
struct {
struct rxe_recv_wqe wqe;
struct ib_sge sge[RXE_MAX_SGE];
} srq_wqe;
Thanks a lot.
Yanjun.Zhu
>
> -Gustavo
next prev parent reply other threads:[~2025-12-19 5:27 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-11 3:35 [PATCH][next] RDMA/rxe: Avoid -Wflex-array-member-not-at-end warnings Gustavo A. R. Silva
2025-11-11 11:56 ` Leon Romanovsky
2025-11-11 12:14 ` Gustavo A. R. Silva
2025-11-11 14:19 ` Leon Romanovsky
2025-11-11 15:37 ` Zhu Yanjun
2025-11-12 8:49 ` Gustavo A. R. Silva
2025-11-12 9:32 ` Leon Romanovsky
2025-11-12 9:50 ` Gustavo A. R. Silva
2025-11-12 12:06 ` Leon Romanovsky
2025-12-02 18:13 ` Jason Gunthorpe
2025-12-03 7:32 ` Zhu Yanjun
2025-12-04 5:08 ` Zhu Yanjun
2025-12-04 13:05 ` Jason Gunthorpe
2025-12-04 17:48 ` yanjun.zhu
2025-12-06 4:41 ` Zhu Yanjun
2025-12-15 5:00 ` Zhu Yanjun
2025-12-18 15:56 ` Leon Romanovsky
2025-12-18 19:22 ` Yanjun.Zhu
2025-12-19 2:51 ` Gustavo A. R. Silva
2025-12-19 4:29 ` Zhu Yanjun
2025-12-19 4:35 ` Gustavo A. R. Silva
2025-12-19 5:27 ` Zhu Yanjun [this message]
2025-12-19 5:48 ` Gustavo A. R. Silva
2025-12-19 6:59 ` Zhu Yanjun
2025-12-19 9:55 ` Gustavo A. R. Silva
2025-12-20 7:07 ` Zhu Yanjun
2025-12-19 14:26 ` Jason Gunthorpe
2025-12-26 6:13 ` Zhu Yanjun
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=01b419f6-264e-4faa-b4df-480fdf952d14@linux.dev \
--to=yanjun.zhu@linux.dev \
--cc=gustavo@embeddedor.com \
--cc=gustavoars@kernel.org \
--cc=jgg@nvidia.com \
--cc=leon@kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=zyjzyj2000@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.