diff mbox series

RDMA/rxe: Generate a completion for unsupported/invalid opcode

Message ID 20220408033029.4789-1-yangx.jy@fujitsu.com (mailing list archive)
State Superseded
Headers show
Series RDMA/rxe: Generate a completion for unsupported/invalid opcode | expand

Commit Message

Xiao Yang April 8, 2022, 3:30 a.m. UTC
Current rxe_requester() doesn't generate a completion when processing an
unsupported/invalid opcode. If rxe driver doesn't support a new opcode
(e.g. RDMA Atomic Write) and RDMA library supports it, an application
using the new opcode can reproduce this issue. Fix the issue by calling
"goto err;".

Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
---
 drivers/infiniband/sw/rxe/rxe_req.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bob Pearson April 8, 2022, 6:11 p.m. UTC | #1
On 4/7/22 22:30, Xiao Yang wrote:
> Current rxe_requester() doesn't generate a completion when processing an
> unsupported/invalid opcode. If rxe driver doesn't support a new opcode
> (e.g. RDMA Atomic Write) and RDMA library supports it, an application
> using the new opcode can reproduce this issue. Fix the issue by calling
> "goto err;".
> 
> Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
> ---
>  drivers/infiniband/sw/rxe/rxe_req.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/infiniband/sw/rxe/rxe_req.c b/drivers/infiniband/sw/rxe/rxe_req.c
> index ae5fbc79dd5c..8a1cff80a68e 100644
> --- a/drivers/infiniband/sw/rxe/rxe_req.c
> +++ b/drivers/infiniband/sw/rxe/rxe_req.c
> @@ -661,7 +661,7 @@ int rxe_requester(void *arg)
>  	opcode = next_opcode(qp, wqe, wqe->wr.opcode);
>  	if (unlikely(opcode < 0)) {
>  		wqe->status = IB_WC_LOC_QP_OP_ERR;
> -		goto exit;
> +		goto err;
>  	}
>  
>  	mask = rxe_opcode[opcode].mask;

Much better! This looks correct.

Reviewed-by: Bob Pearson <rpearsonhpe@gmail.com>
Jason Gunthorpe April 8, 2022, 6:26 p.m. UTC | #2
On Fri, Apr 08, 2022 at 11:30:29AM +0800, Xiao Yang wrote:
> Current rxe_requester() doesn't generate a completion when processing an
> unsupported/invalid opcode. If rxe driver doesn't support a new opcode
> (e.g. RDMA Atomic Write) and RDMA library supports it, an application
> using the new opcode can reproduce this issue. Fix the issue by calling
> "goto err;".
> 
> Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
> ---
>  drivers/infiniband/sw/rxe/rxe_req.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Fixes line?

Jason
Bob Pearson April 8, 2022, 7:34 p.m. UTC | #3
On 4/8/22 13:26, Jason Gunthorpe wrote:
> On Fri, Apr 08, 2022 at 11:30:29AM +0800, Xiao Yang wrote:
>> Current rxe_requester() doesn't generate a completion when processing an
>> unsupported/invalid opcode. If rxe driver doesn't support a new opcode
>> (e.g. RDMA Atomic Write) and RDMA library supports it, an application
>> using the new opcode can reproduce this issue. Fix the issue by calling
>> "goto err;".
>>
>> Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
>> ---
>>  drivers/infiniband/sw/rxe/rxe_req.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> Fixes line?
> 
> Jason

That would be 

Fixes: 8700e3e7c485 ("Soft RoCE (RXE) - The software RoCE driver")


Been there forever.
Xiao Yang April 10, 2022, 11:29 a.m. UTC | #4
On 2022/4/9 3:34, Bob Pearson wrote:
> On 4/8/22 13:26, Jason Gunthorpe wrote:
>> On Fri, Apr 08, 2022 at 11:30:29AM +0800, Xiao Yang wrote:
>>> Current rxe_requester() doesn't generate a completion when processing an
>>> unsupported/invalid opcode. If rxe driver doesn't support a new opcode
>>> (e.g. RDMA Atomic Write) and RDMA library supports it, an application
>>> using the new opcode can reproduce this issue. Fix the issue by calling
>>> "goto err;".
>>>
>>> Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
>>> ---
>>>   drivers/infiniband/sw/rxe/rxe_req.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> Fixes line?
>>
>> Jason
> 
> That would be
> 
> Fixes: 8700e3e7c485 ("Soft RoCE (RXE) - The software RoCE driver")
> 

Right, I will send v2 patch with the Fixes line.

Best Regards,
Xiao Yang
> 
> Been there forever.
diff mbox series

Patch

diff --git a/drivers/infiniband/sw/rxe/rxe_req.c b/drivers/infiniband/sw/rxe/rxe_req.c
index ae5fbc79dd5c..8a1cff80a68e 100644
--- a/drivers/infiniband/sw/rxe/rxe_req.c
+++ b/drivers/infiniband/sw/rxe/rxe_req.c
@@ -661,7 +661,7 @@  int rxe_requester(void *arg)
 	opcode = next_opcode(qp, wqe, wqe->wr.opcode);
 	if (unlikely(opcode < 0)) {
 		wqe->status = IB_WC_LOC_QP_OP_ERR;
-		goto exit;
+		goto err;
 	}
 
 	mask = rxe_opcode[opcode].mask;