RDMA/core: Added missing WR and WC opcodes
authorBob Pearson <rpearsonhpe@gmail.com>
Thu, 3 Sep 2020 22:40:34 +0000 (17:40 -0500)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 11 Sep 2020 13:24:54 +0000 (10:24 -0300)
Add work completion opcodes to a new ib_uverbs_wc_opcode enum in
ib_user_verbs.h. This plays the same role as ib_uverbs_wr_opcode
documenting the opcodes in the user space API.

Assigned the IB_WC_XXX opcodes in ib_verbs.h to the IB_UVERBS_WC_XXX
where they are defined. This follows the same pattern as the IB_WR_XXX
opcodes. This fixes an incorrect value for LSO that had crept in but
is not currently being used.

Added a missing IB_WR_BIND_MW opcode in ib_verbs.h.

Link: https://lore.kernel.org/r/20200903224039.437391-2-rpearson@hpe.com
Signed-off-by: Bob Pearson <rpearson@hpe.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
include/rdma/ib_verbs.h
include/uapi/rdma/ib_user_verbs.h

index 97658d7..5ae1d98 100644 (file)
@@ -952,13 +952,14 @@ enum ib_wc_status {
 const char *__attribute_const__ ib_wc_status_msg(enum ib_wc_status status);
 
 enum ib_wc_opcode {
-       IB_WC_SEND,
-       IB_WC_RDMA_WRITE,
-       IB_WC_RDMA_READ,
-       IB_WC_COMP_SWAP,
-       IB_WC_FETCH_ADD,
-       IB_WC_LSO,
-       IB_WC_LOCAL_INV,
+       IB_WC_SEND = IB_UVERBS_WC_SEND,
+       IB_WC_RDMA_WRITE = IB_UVERBS_WC_RDMA_WRITE,
+       IB_WC_RDMA_READ = IB_UVERBS_WC_RDMA_READ,
+       IB_WC_COMP_SWAP = IB_UVERBS_WC_COMP_SWAP,
+       IB_WC_FETCH_ADD = IB_UVERBS_WC_FETCH_ADD,
+       IB_WC_BIND_MW = IB_UVERBS_WC_BIND_MW,
+       IB_WC_LOCAL_INV = IB_UVERBS_WC_LOCAL_INV,
+       IB_WC_LSO = IB_UVERBS_WC_TSO,
        IB_WC_REG_MR,
        IB_WC_MASKED_COMP_SWAP,
        IB_WC_MASKED_FETCH_ADD,
@@ -1291,6 +1292,7 @@ enum ib_wr_opcode {
        IB_WR_RDMA_READ = IB_UVERBS_WR_RDMA_READ,
        IB_WR_ATOMIC_CMP_AND_SWP = IB_UVERBS_WR_ATOMIC_CMP_AND_SWP,
        IB_WR_ATOMIC_FETCH_AND_ADD = IB_UVERBS_WR_ATOMIC_FETCH_AND_ADD,
+       IB_WR_BIND_MW = IB_UVERBS_WR_BIND_MW,
        IB_WR_LSO = IB_UVERBS_WR_TSO,
        IB_WR_SEND_WITH_INV = IB_UVERBS_WR_SEND_WITH_INV,
        IB_WR_RDMA_READ_WITH_INV = IB_UVERBS_WR_RDMA_READ_WITH_INV,
index 0474c74..456438c 100644 (file)
@@ -457,6 +457,17 @@ struct ib_uverbs_poll_cq {
        __u32 ne;
 };
 
+enum ib_uverbs_wc_opcode {
+       IB_UVERBS_WC_SEND = 0,
+       IB_UVERBS_WC_RDMA_WRITE = 1,
+       IB_UVERBS_WC_RDMA_READ = 2,
+       IB_UVERBS_WC_COMP_SWAP = 3,
+       IB_UVERBS_WC_FETCH_ADD = 4,
+       IB_UVERBS_WC_BIND_MW = 5,
+       IB_UVERBS_WC_LOCAL_INV = 6,
+       IB_UVERBS_WC_TSO = 7,
+};
+
 struct ib_uverbs_wc {
        __aligned_u64 wr_id;
        __u32 status;