aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorYishai Hadas <yishaih@mellanox.com>2014-01-28 06:40:15 -0500
committerRoland Dreier <roland@purestorage.com>2014-03-04 13:34:28 -0500
commiteeb8461e36c99fdf2d058751be924a2aab215005 (patch)
treec92498349f842be5985194c840e2dd12201df861 /include
parentcfbf8d4857c26a8a307fb7cd258074c9dcd8c691 (diff)
IB: Refactor umem to use linear SG table
This patch refactors the IB core umem code and vendor drivers to use a linear (chained) SG table instead of chunk list. With this change the relevant code becomes clearer—no need for nested loops to build and use umem. Signed-off-by: Shachar Raindel <raindel@mellanox.com> Signed-off-by: Yishai Hadas <yishaih@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'include')
-rw-r--r--include/rdma/ib_umem.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/include/rdma/ib_umem.h b/include/rdma/ib_umem.h
index 9ee0d2e51b16..1ea0b65c4cfb 100644
--- a/include/rdma/ib_umem.h
+++ b/include/rdma/ib_umem.h
@@ -46,17 +46,12 @@ struct ib_umem {
46 int page_size; 46 int page_size;
47 int writable; 47 int writable;
48 int hugetlb; 48 int hugetlb;
49 struct list_head chunk_list;
50 struct work_struct work; 49 struct work_struct work;
51 struct mm_struct *mm; 50 struct mm_struct *mm;
52 unsigned long diff; 51 unsigned long diff;
53}; 52 struct sg_table sg_head;
54 53 int nmap;
55struct ib_umem_chunk { 54 int npages;
56 struct list_head list;
57 int nents;
58 int nmap;
59 struct scatterlist page_list[0];
60}; 55};
61 56
62#ifdef CONFIG_INFINIBAND_USER_MEM 57#ifdef CONFIG_INFINIBAND_USER_MEM