From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: Leon Romanovsky <leon@kernel.org>,
jgg@ziepe.ca, rpearsonhpe@gmail.com, matsuda-daisuke@fujitsu.com,
linux-rdma@vger.kernel.org, Honggang LI <honggangli@163.com>
Subject: Re: [PATCH] RDMA/rxe: Fix responder length checking for UD request packets
Date: Fri, 7 Jun 2024 10:57:12 +0200 [thread overview]
Message-ID: <4b082825-af44-40fe-a6e9-a33d7caa4351@linux.dev> (raw)
In-Reply-To: <171707866514.136408.14977812016177496326.b4-ty@kernel.org>
On 30.05.24 16:17, Leon Romanovsky wrote:
> On Thu, 23 May 2024 17:46:17 +0800, Honggang LI wrote:
>> According to the IBA specification:
>> If a UD request packet is detected with an invalid length, the request
>> shall be an invalid request and it shall be silently dropped by
>> the responder. The responder then waits for a new request packet.
>>
>> commit 689c5421bfe0 ("RDMA/rxe: Fix incorrect responder length checking")
>> defers responder length check for UD QPs in function `copy_data`.
>> But it introduces a regression issue for UD QPs.
>>
>> [...]
> Applied, thanks!
>
> [1/1] RDMA/rxe: Fix responder length checking for UD request packets
> https://git.kernel.org/rdma/rdma/c/05301cb42a5567
Hi, Leon
When I built this commit with gcc (Debian 8.3.0-6) 8.3.0, the following
warnings will pop out.
"
drivers/infiniband/sw/rxe/rxe_resp.c: In function ‘rxe_resp_check_length’:
drivers/infiniband/sw/rxe/rxe_resp.c:401:3: error: ‘for’ loop initial
declarations are only allowed in C99 or C11 mode
for (int i = 0; i < qp->resp.wqe->dma.num_sge; i++)
^~~
drivers/infiniband/sw/rxe/rxe_resp.c:401:3: note: use option -std=c99,
-std=gnu99, -std=c11 or -std=gnu11 to compile your code
"
The following diff will fix this problem.
"
diff --git a/drivers/infiniband/sw/rxe/rxe_resp.c
b/drivers/infiniband/sw/rxe/rxe_resp.c
index ad3c7bf76752..6596a85723c9 100644
--- a/drivers/infiniband/sw/rxe/rxe_resp.c
+++ b/drivers/infiniband/sw/rxe/rxe_resp.c
@@ -345,10 +345,11 @@ static enum resp_states
rxe_resp_check_length(struct rxe_qp *qp,
* length checks are performed in check_rkey.
*/
if ((qp_type(qp) == IB_QPT_GSI) || (qp_type(qp) == IB_QPT_UD)) {
- unsigned int recv_buffer_len = 0;
unsigned int payload = payload_size(pkt);
+ unsigned int recv_buffer_len = 0;
+ int i;
- for (int i = 0; i < qp->resp.wqe->dma.num_sge; i++)
+ for (i = 0; i < qp->resp.wqe->dma.num_sge; i++)
recv_buffer_len += qp->resp.wqe->dma.sge[i].length;
if (payload + 40 > recv_buffer_len) {
rxe_dbg_qp(qp, "The receive buffer is too small
for this UD packet.\n");
"
Zhu Yanjun
>
> Best regards,
--
Best Regards,
Yanjun.Zhu
next prev parent reply other threads:[~2024-06-07 8:57 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-23 9:46 [PATCH] RDMA/rxe: Fix responder length checking for UD request packets Honggang LI
2024-05-23 12:06 ` Zhu Yanjun
2024-05-23 15:03 ` Zhu Yanjun
2024-05-24 1:52 ` Honggang LI
2024-05-28 11:10 ` Zhu Yanjun
2024-05-30 14:13 ` Leon Romanovsky
2024-05-30 14:17 ` Leon Romanovsky
2024-06-07 8:57 ` Zhu Yanjun [this message]
2024-06-09 10:38 ` Leon Romanovsky
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=4b082825-af44-40fe-a6e9-a33d7caa4351@linux.dev \
--to=yanjun.zhu@linux.dev \
--cc=honggangli@163.com \
--cc=jgg@ziepe.ca \
--cc=leon@kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=matsuda-daisuke@fujitsu.com \
--cc=rpearsonhpe@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.