Sean Hefty wrote:
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.

Thanks Sean,
I'll send an updated patch with the fix.

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.

I don't have a strong opinion on this, but it looks to me more natural to use
new opcodes and this way it is backward compatible.

Regards,
Vladimir
--
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