net/rds: Handle ODP mr registration/unregistration
On-Demand-Paging MRs are registered using ib_reg_user_mr and unregistered with ib_dereg_mr. Signed-off-by: Hans Westgaard Ry <hans.westgaard.ry@oracle.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
This commit is contained in:

committed by
Leon Romanovsky

parent
c4c86abb3f
commit
2eafa1746f
@@ -67,6 +67,7 @@ struct rds_ib_frmr {
|
||||
|
||||
/* This is stored as mr->r_trans_private. */
|
||||
struct rds_ib_mr {
|
||||
struct delayed_work work;
|
||||
struct rds_ib_device *device;
|
||||
struct rds_ib_mr_pool *pool;
|
||||
struct rds_ib_connection *ic;
|
||||
@@ -81,9 +82,11 @@ struct rds_ib_mr {
|
||||
unsigned int sg_len;
|
||||
int sg_dma_len;
|
||||
|
||||
u8 odp:1;
|
||||
union {
|
||||
struct rds_ib_fmr fmr;
|
||||
struct rds_ib_frmr frmr;
|
||||
struct ib_mr *mr;
|
||||
} u;
|
||||
};
|
||||
|
||||
@@ -122,12 +125,14 @@ void rds6_ib_get_mr_info(struct rds_ib_device *rds_ibdev,
|
||||
void rds_ib_destroy_mr_pool(struct rds_ib_mr_pool *);
|
||||
void *rds_ib_get_mr(struct scatterlist *sg, unsigned long nents,
|
||||
struct rds_sock *rs, u32 *key_ret,
|
||||
struct rds_connection *conn);
|
||||
struct rds_connection *conn, u64 start, u64 length,
|
||||
int need_odp);
|
||||
void rds_ib_sync_mr(void *trans_private, int dir);
|
||||
void rds_ib_free_mr(void *trans_private, int invalidate);
|
||||
void rds_ib_flush_mrs(void);
|
||||
int rds_ib_mr_init(void);
|
||||
void rds_ib_mr_exit(void);
|
||||
u32 rds_ib_get_lkey(void *trans_private);
|
||||
|
||||
void __rds_ib_teardown_mr(struct rds_ib_mr *);
|
||||
void rds_ib_teardown_mr(struct rds_ib_mr *);
|
||||
|
Reference in New Issue
Block a user