-From 3da8ce605b1942b5a7705f10cbadd2afe3b5b810 Mon Sep 17 00:00:00 2001
+From bd9c0ebb6c193ae15edb8a1030e60c7d657350a5 Mon Sep 17 00:00:00 2001
From: Jerrie Coffman <jerrie.l.coffman@intel.com>
Date: Fri, 20 May 2016 16:17:43 -0700
Subject: [PATCH 3/7] add the ibp client and server drivers
drivers/infiniband/ibp/drv/ibp.h | 260 +++
drivers/infiniband/ibp/drv/server.c | 503 +++++
drivers/infiniband/ibp/drv/server.h | 182 ++
- drivers/infiniband/ibp/drv/server_msg.c | 2813 +++++++++++++++++++++++++++
+ drivers/infiniband/ibp/drv/server_msg.c | 2815 +++++++++++++++++++++++++++
drivers/infiniband/ibp/sa/Makefile | 13 +
drivers/infiniband/ibp/sa/client.c | 134 ++
drivers/infiniband/ibp/sa/client.h | 90 +
drivers/infiniband/ibp/sa/server.c | 218 +++
drivers/infiniband/ibp/sa/server.h | 173 ++
drivers/infiniband/ibp/sa/server_msg.c | 185 ++
- 62 files changed, 22335 insertions(+)
+ 62 files changed, 22337 insertions(+)
create mode 100644 drivers/infiniband/ibp/Kconfig
create mode 100644 drivers/infiniband/ibp/Makefile
create mode 100644 drivers/infiniband/ibp/cm/Makefile
+}
diff --git a/drivers/infiniband/ibp/drv/hw/mlx5/dbrec.c b/drivers/infiniband/ibp/drv/hw/mlx5/dbrec.c
new file mode 100644
-index 0000000..23aaeac
+index 0000000..f06e4d9
--- /dev/null
+++ b/drivers/infiniband/ibp/drv/hw/mlx5/dbrec.c
@@ -0,0 +1,126 @@
+static int ibp_mlx5_alloc_db_from_pgdir(struct ibp_mlx5_db_pgdir *pgdir,
+ struct ibp_mlx5_dbrec *db)
+{
-+ int i;
++ unsigned long i;
+ int offset;
+
+ i = find_first_bit(pgdir->bitmap, MLX5_DB_PER_PAGE);
+ if (i >= MLX5_DB_PER_PAGE) {
-+ print_err("find_first_bit returned %d > %d\n",
++ print_err("find_first_bit returned %lu > %lu\n",
+ i, MLX5_DB_PER_PAGE);
+ return -ENOMEM;
+ }
+#endif /* SERVER_H */
diff --git a/drivers/infiniband/ibp/drv/server_msg.c b/drivers/infiniband/ibp/drv/server_msg.c
new file mode 100644
-index 0000000..ed5a697
+index 0000000..b0cb8cf
--- /dev/null
+++ b/drivers/infiniband/ibp/drv/server_msg.c
-@@ -0,0 +1,2813 @@
+@@ -0,0 +1,2815 @@
+/*
+ * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
+ *
+ umem->hugetlb = 0;
+
+ for_each_sg(umem->sg_head.sgl, sg, npages, i) {
-+ page = vmalloc_to_page(va[i]);
++ phys_addr_t phys;
++ phys = slow_virt_to_phys(va[i]);
++ page = pfn_to_page(phys >> PAGE_SHIFT);
+ if (!page) {
-+ print_err("vmalloc_to_page failed\n");
++ print_err("pfn_to_page failed\n");
+ ret = -EINVAL;
+ goto err2;
+ }