> enum ib_atomic_cap {
>@@ -472,7 +473,9 @@ enum ib_wc_opcode {
>  * receive by testing (opcode & IB_WC_RECV).
>  */
>       IB_WC_RECV                      = 1 << 7,
>-      IB_WC_RECV_RDMA_WITH_IMM
>+      IB_WC_RECV_RDMA_WITH_IMM,
>+      IB_WC_MASKED_COMP_SWAP,
>+      IB_WC_MASKED_FETCH_ADD
> };

This breaks the ability to check for a receive by testing opcode & IB_WC_RECV.
Is it even necessary to define new work completion opcodes?

> enum ib_wc_flags {
>@@ -689,6 +692,8 @@ enum ib_wr_opcode {
>       IB_WR_RDMA_READ_WITH_INV,
>       IB_WR_LOCAL_INV,
>       IB_WR_FAST_REG_MR,
>+      IB_WR_ATOMIC_MASKED_CMP_AND_SWP,
>+      IB_WR_ATOMIC_MASKED_FETCH_AND_ADD,
> };

Just tossing this out as a possibility -- the mask itself could be used to
indicate the type of operation.  Kernel clients would always set the mask for
all atomic operations.

Also, is there a kernel user for this functionality?

- Sean

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to