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 |
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>
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
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.
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 --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;
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(-)