RDMA/umem: Make ib_umem_odp into a sub structure of ib_umem
These two structures are linked together, use the container_of pattern instead of a double allocation to make the code simpler and easier to follow. Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:

committed by
Doug Ledford

parent
b5231b019d
commit
41b4deeaa1
@@ -43,6 +43,7 @@ struct umem_odp_node {
|
||||
};
|
||||
|
||||
struct ib_umem_odp {
|
||||
struct ib_umem umem;
|
||||
/*
|
||||
* An array of the pages included in the on-demand paging umem.
|
||||
* Indices of pages that are currently not mapped into the device will
|
||||
@@ -72,7 +73,6 @@ struct ib_umem_odp {
|
||||
/* A linked list of umems that don't have private mmu notifier
|
||||
* counters yet. */
|
||||
struct list_head no_private_counters;
|
||||
struct ib_umem *umem;
|
||||
|
||||
/* Tree tracking */
|
||||
struct umem_odp_node interval_tree;
|
||||
@@ -84,13 +84,12 @@ struct ib_umem_odp {
|
||||
|
||||
static inline struct ib_umem_odp *to_ib_umem_odp(struct ib_umem *umem)
|
||||
{
|
||||
return umem->odp_data;
|
||||
return container_of(umem, struct ib_umem_odp, umem);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING
|
||||
|
||||
int ib_umem_odp_get(struct ib_ucontext *context, struct ib_umem *umem,
|
||||
int access);
|
||||
int ib_umem_odp_get(struct ib_umem_odp *umem_odp, int access);
|
||||
struct ib_umem_odp *ib_alloc_odp_umem(struct ib_ucontext *context,
|
||||
unsigned long addr, size_t size);
|
||||
void ib_umem_odp_release(struct ib_umem_odp *umem_odp);
|
||||
@@ -158,9 +157,7 @@ static inline int ib_umem_mmu_notifier_retry(struct ib_umem_odp *umem_odp,
|
||||
|
||||
#else /* CONFIG_INFINIBAND_ON_DEMAND_PAGING */
|
||||
|
||||
static inline int ib_umem_odp_get(struct ib_ucontext *context,
|
||||
struct ib_umem *umem,
|
||||
int access)
|
||||
static inline int ib_umem_odp_get(struct ib_umem_odp *umem_odp, int access)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user