From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from omta036.useast.a.cloudfilter.net (omta036.useast.a.cloudfilter.net [44.202.169.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E73E5128395 for ; Tue, 23 Dec 2025 09:34:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=44.202.169.35 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766482493; cv=none; b=hri2gZoYpiasF2OXOPuB+HZrtKdy0Kc2GUHdj7jN61SRO6mfIAUayGdQFB73vRJ3715O/lO7/Ad2boH8snfIjxBCbEX/5X2J78YpANwbNDOzhvOhMEs3NGsDk8Oq36zDciarClZmiEsLyUVqrMTE7rL+c0ujofUPq5m9JuEkzxY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766482493; c=relaxed/simple; bh=BTd6X7jthe23gKxSofq4UXbkAec3JUVclqq2VBlFuCg=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=iXJtNnhyXYJZ/88ujxEEKoVz0f5J8WQB1o+nAwkPiHsqS7DtYrcC5/sTi3WQ9iWV70KSPu84Vq/XR8NfdcilWI0+S2TuA9oF52JW8Hf29aNUaFmLBdJfiIGdtZgf572ijdQPeXSGscajLzVaUI1YTHcPry6vPFr/ZxWMJJNtY58= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=embeddedor.com; spf=pass smtp.mailfrom=embeddedor.com; dkim=pass (2048-bit key) header.d=embeddedor.com header.i=@embeddedor.com header.b=sh5fT/DS; arc=none smtp.client-ip=44.202.169.35 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=embeddedor.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=embeddedor.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=embeddedor.com header.i=@embeddedor.com header.b="sh5fT/DS" Received: from eig-obgw-6002b.ext.cloudfilter.net ([10.0.30.203]) by cmsmtp with ESMTPS id Xm4avZtB4KXDJXyn4vrYzi; Tue, 23 Dec 2025 09:34:51 +0000 Received: from gator4166.hostgator.com ([108.167.133.22]) by cmsmtp with ESMTPS id Xyn3vGfifPL32Xyn4vUD1d; Tue, 23 Dec 2025 09:34:50 +0000 X-Authority-Analysis: v=2.4 cv=MqhS63ae c=1 sm=1 tr=0 ts=694a623a a=1YbLdUo/zbTtOZ3uB5T3HA==:117 a=ujWNxKVE5dX343uAl30YYw==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=7T7KSl7uo7wA:10 a=VwQbUJbxAAAA:8 a=mJq1-cvzlqfD3vEG3KgA:9 a=QEXdDO2ut3YA:10 a=2aFnImwKRvkU0tJ3nQRT:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=embeddedor.com; s=default; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:Message-ID:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=WrnTTc6tH3NsD3ahwI45ZfdBF//1yEaXYqJkf++rVUM=; b=sh5fT/DS3mlLItgQAnlqDGGVuk p51EwnZMrxAdXeOZ/GSweOAgjmaAu+AOG5Vd+d2UzCtYELA9prZwBeED8ua/oua0fK/XqyepJ+s3P MHC8eFUcGFtypBrLV97G/sRkamd7XCRJvdpJMuC/FhKoIjBMG8A3ybH5FsoATLXmSm+P7pNFRzkag uGc3ZOFEAJ+4IZvfhVNs+4N+ItqLNTHtd0EwNgpqGMvfCt2IYwuAgOJxkrDCGQqLXz+h3lhA+AbK8 0nhiB3daLnwygMHRjZdEVHOUdrbiCRHXcVitWEQqRIgtzMPD4PtAACjVsIgPG5FNifoqESjovZa52 wwkvgWVQ==; Received: from i118-18-233-1.s41.a027.ap.plala.or.jp ([118.18.233.1]:62901 helo=[10.83.24.44]) by gator4166.hostgator.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.1) (envelope-from ) id 1vXyn3-00000003687-1gqJ; Tue, 23 Dec 2025 03:34:49 -0600 Message-ID: Date: Tue, 23 Dec 2025 18:34:44 +0900 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 1/1] RDMA/rxe: Avoid -Wflex-array-member-not-at-end warnings To: Zhu Yanjun , zyjzyj2000@gmail.com, jgg@ziepe.ca, leon@kernel.org, linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org Cc: "Gustavo A. R. Silva" References: <20251223044129.6232-1-yanjun.zhu@linux.dev> Content-Language: en-US From: "Gustavo A. R. Silva" In-Reply-To: <20251223044129.6232-1-yanjun.zhu@linux.dev> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator4166.hostgator.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - embeddedor.com X-BWhitelist: no X-Source-IP: 118.18.233.1 X-Source-L: No X-Exim-ID: 1vXyn3-00000003687-1gqJ X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: i118-18-233-1.s41.a027.ap.plala.or.jp ([10.83.24.44]) [118.18.233.1]:62901 X-Source-Auth: gustavo@embeddedor.com X-Email-Count: 9 X-Org: HG=hgshared;ORG=hostgator; X-Source-Cap: Z3V6aWRpbmU7Z3V6aWRpbmU7Z2F0b3I0MTY2Lmhvc3RnYXRvci5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfKZABsqrZMtFkG9uiEQicTlGpRU2kG7y6JEuq+A+eoRiso1oc2skMGQ8GXGii9u5/hERQnuZ3RoJrXiotYoedTLZqWQwE1Hc68othLDVJoYTi10/Hdyh Rb4WFPSJVXDmyj5wxBG0+Z1MlSX1BH7Zp6OzfpkkzG1FvRU6V9InkeYKSZTS+Tc1BpACmCghKDACYii3+k1WuVpuFikhXBVqF74lOWwTKVTsAxtWL6kPhwrF On 12/23/25 13:41, Zhu Yanjun wrote: > From: "Gustavo A. R. Silva" > > -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 > Signed-off-by: Gustavo A. R. Silva NACK. I didn't write this patch. Please, don't ever submit modified patches on my behalf. > --- > V2->V3: Replace struct ib_sge with struct rxe_sge Patch granularity is a fundamental thing. Changes addressing different issues should not be mixed together. Previously existing issues (if any) must be addressed in separate patches. -Gustavo > --- > drivers/infiniband/sw/rxe/rxe_verbs.h | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/drivers/infiniband/sw/rxe/rxe_verbs.h b/drivers/infiniband/sw/rxe/rxe_verbs.h > index fd48075810dd..3ffd7be8e7b1 100644 > --- a/drivers/infiniband/sw/rxe/rxe_verbs.h > +++ b/drivers/infiniband/sw/rxe/rxe_verbs.h > @@ -219,12 +219,6 @@ struct rxe_resp_info { > u32 rkey; > u32 length; > > - /* SRQ only */ > - struct { > - struct rxe_recv_wqe wqe; > - struct ib_sge sge[RXE_MAX_SGE]; > - } srq_wqe; > - > /* Responder resources. It's a circular list where the oldest > * resource is dropped first. > */ > @@ -232,7 +226,15 @@ struct rxe_resp_info { > unsigned int res_head; > unsigned int res_tail; > struct resp_res *res; > + > + /* SRQ only */ > + /* Must be last as it ends in a flexible-array member. */ > + TRAILING_OVERLAP(struct rxe_recv_wqe, wqe, dma.sge, > + struct rxe_sge sge[RXE_MAX_SGE]; > + ) srq_wqe; > }; > +static_assert(offsetof(struct rxe_resp_info, srq_wqe.wqe.dma.sge) == > + offsetof(struct rxe_resp_info, srq_wqe.sge)); > > struct rxe_qp { > struct ib_qp ibqp; > @@ -269,7 +271,6 @@ struct rxe_qp { > > struct rxe_req_info req; > struct rxe_comp_info comp; > - struct rxe_resp_info resp; > > atomic_t ssn; > atomic_t skb_out; > @@ -289,6 +290,9 @@ struct rxe_qp { > spinlock_t state_lock; /* guard requester and completer */ > > struct execute_work cleanup_work; > + > + /* Must be last as it ends in a flexible-array member. */ > + struct rxe_resp_info resp; > }; > > enum {