RDMA/rxe: Generate a completion for unsupported/invalid opcode
authorXiao Yang <yangx.jy@fujitsu.com>
Sun, 10 Apr 2022 11:35:13 +0000 (19:35 +0800)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 12 Apr 2022 14:16:24 +0000 (11:16 -0300)
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;".

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Link: https://lore.kernel.org/r/20220410113513.27537-1-yangx.jy@fujitsu.com
Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_req.c

index 5f7348b11268b7395ecd266a017f755c4ff47e29..e2659663b2837e82a1bb7418fa89759bc49b193b 100644 (file)
@@ -659,7 +659,7 @@ next_wqe:
        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;