On Fri, Oct 30, 2020 at 11:18:15AM -0500, Bob Pearson wrote: > This the right short term fix but seriously why not just completely > kill off uverbs_cmd_mask? If a driver sets a non-NULL value in > ib_device_ops assume it was done for a reason and allow commands > through. Is there any example of a driver using uverbs_cmd_mask to > dynamically enable/disable a verb? I thought this was your plan when > you mentioned this change a while back. The remaining ops are all shared with the kernel, so nearly all drivers set the post_send op but only a few are prepared for it to be called from userspace. It is an unfortuante side effect of co-mingling the kernel and user API. The only way out would be to split the remaining ops into user/kernel versions and require drivers to set the user op pointer. These would be effected: rdi->ibdev.uverbs_cmd_mask |= (1ull << IB_USER_VERBS_CMD_POLL_CQ) | (1ull << IB_USER_VERBS_CMD_REQ_NOTIFY_CQ) | (1ull << IB_USER_VERBS_CMD_POST_SEND) | (1ull << IB_USER_VERBS_CMD_POST_RECV) | (1ull << IB_USER_VERBS_CMD_POST_SRQ_RECV); I thought about doing it, maybe I should check again Jason