On Tue, Dec 11, 2018 at 10:59:25AM +0200, Gal Pressman wrote: > diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h > index 85021451eee0..499d96302262 100644 > +++ b/include/rdma/ib_verbs.h > @@ -2374,6 +2374,7 @@ struct ib_device { > int (*dealloc_pd)(struct ib_pd *pd); > struct ib_ah * (*create_ah)(struct ib_pd *pd, > struct rdma_ah_attr *ah_attr, > + bool sleepable, > struct ib_udata *udata); I think the Linux style consensus here is that these should be a flag with a enum name not a bool > @@ -3180,11 +3181,13 @@ void ib_dealloc_pd(struct ib_pd *pd); > * rdma_create_ah - Creates an address handle for the given address vector. > * @pd: The protection domain associated with the address handle. > * @ah_attr: The attributes of the address vector. > + * @sleepable: In a sleepable context. > * > * The address handle is used to reference a local or global destination > * in all UD QP post sends. > */ > -struct ib_ah *rdma_create_ah(struct ib_pd *pd, struct rdma_ah_attr *ah_attr); > +struct ib_ah *rdma_create_ah(struct ib_pd *pd, struct rdma_ah_attr *ah_attr, > + bool sleepable); Probably here too Jason