On Tue, Aug 14, 2018 at 10:41:19AM -0400, Chuck Lever wrote: > Hi- > > /** > * rdma_create_id - Create an RDMA identifier. > * > * @net: The network namespace in which to create the new id. > * @event_handler: User callback invoked to report events associated with the > * returned rdma_id. > * @context: User specified context associated with the id. > * @ps: RDMA port space. > * @qp_type: type of queue pair associated with the id. > * > * The id holds a reference on the network namespace until it is destroyed. > */ > #define rdma_create_id(net, event_handler, context, ps, qp_type) > > Is it guaranteed that the @event_handler function is called in a > process context? Code audit suggests it's always a delayed worker > thread, thus it would always be safe to use spin_lock_bh in the > event handler function. > > Same question for the consumer's QP event handler: > > struct ib_qp_init_attr { > void (*event_handler)(struct ib_event *, void *); > > Thanks in advance. If you find out please add a comment :) Jason