RDMA: Mark if create address handle is in a sleepable context
Introduce a 'flags' field to create address handle callback and add a flag that marks whether the callback is executed in an atomic context or not. This will allow drivers to wait for completion instead of polling for it when it is allowed. Signed-off-by: Gal Pressman <galpress@amazon.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Šī revīzija ir iekļauta:

revīziju iesūtīja
Jason Gunthorpe

vecāks
5dabcd0456
revīzija
b090c4e3a0
@@ -91,6 +91,7 @@ EXPORT_SYMBOL(rvt_check_ah);
|
||||
* rvt_create_ah - create an address handle
|
||||
* @pd: the protection domain
|
||||
* @ah_attr: the attributes of the AH
|
||||
* @create_flags: create address handle flags (see enum rdma_create_ah_flags)
|
||||
* @udata: pointer to user's input output buffer information.
|
||||
*
|
||||
* This may be called from interrupt context.
|
||||
@@ -99,6 +100,7 @@ EXPORT_SYMBOL(rvt_check_ah);
|
||||
*/
|
||||
struct ib_ah *rvt_create_ah(struct ib_pd *pd,
|
||||
struct rdma_ah_attr *ah_attr,
|
||||
u32 create_flags,
|
||||
struct ib_udata *udata)
|
||||
{
|
||||
struct rvt_ah *ah;
|
||||
|
@@ -52,6 +52,7 @@
|
||||
|
||||
struct ib_ah *rvt_create_ah(struct ib_pd *pd,
|
||||
struct rdma_ah_attr *ah_attr,
|
||||
u32 create_flags,
|
||||
struct ib_udata *udata);
|
||||
int rvt_destroy_ah(struct ib_ah *ibah);
|
||||
int rvt_modify_ah(struct ib_ah *ibah, struct rdma_ah_attr *ah_attr);
|
||||
|
@@ -219,6 +219,7 @@ static void rxe_init_av(struct rxe_dev *rxe, struct rdma_ah_attr *attr,
|
||||
|
||||
static struct ib_ah *rxe_create_ah(struct ib_pd *ibpd,
|
||||
struct rdma_ah_attr *attr,
|
||||
u32 flags,
|
||||
struct ib_udata *udata)
|
||||
|
||||
{
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user