On Wed, Nov 01, 2017 at 08:22:37PM +0200, Yishai Hadas wrote: > On 11/1/2017 8:00 PM, Jason Gunthorpe wrote: > >>> if (attr_mask & ~((1ULL << (IBV_QP_DEST_QPN + 1)) - 1)) > >> > >>The above rdma-core code is correct, look at verbs.h: > >>IBV_QP_DEST_QPN = 1 << 20, > > > >Okay, then it should be > > > > if (attr_mask & ~(IB_QP_RATE_LIMIT - 1)) > > > > Why the library should support values that were never exposed in verbs.h ? I think Ram is explaining that the kernel rdma_cm provides the attr_mask to use with modify_qp, and that the 4.3 kernel sets the three now reserved bits. The expectation is that user space will flow those bits and values from the kernel rdma_cm interface back to uverbs. Userspace never looks at the attr_mask, and it does not matter that the values were never in verbs.h. rdma-core is expected to work on 4.3, so if 4.3 is using this kind of path, we cannot block it in userspace. At least, I think that is what Ram is saying. Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html