]> git.openfabrics.org - ~emulex/tmp/compat-rdma/.git/commitdiff
xeon-phi: ibscif bug 2570: correction to communitate between host and card
authorJay Sternberg <jay.e.sternberg@intel.com>
Mon, 5 Oct 2015 15:49:37 +0000 (08:49 -0700)
committerVladimir Sokolovsky <vlad@mellanox.com>
Tue, 6 Oct 2015 07:59:11 +0000 (10:59 +0300)
included are updated patches for xeon-phi so they apply cleanly in
3.18-1 and updated ofed-mic script to handle this situation better.

Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com>
14 files changed:
ofed_scripts/ibscif.conf
ofed_scripts/ofed-mic
tech-preview/xeon-phi/0001-ib_core-add-mic-node-and-scif-transport-types.patch
tech-preview/xeon-phi/0002-rdma_cm-add-mic-node-and-scif-transport-types.patch
tech-preview/xeon-phi/0003-add-context-based-udata-support.patch
tech-preview/xeon-phi/0004-add-context-based-umem-support.patch
tech-preview/xeon-phi/0005-allow-mic-ipoib-qp-creation.patch
tech-preview/xeon-phi/0006-add-scif.h-to-the-include-directory-matching-the-loc.patch
tech-preview/xeon-phi/0007-Add-CCL-Direct-ibp-drivers-to-Infiniband.patch
tech-preview/xeon-phi/0008-Add-ibscif-to-the-Infiniband-HW-directory.patch
tech-preview/xeon-phi/0009-update-drivers-infiniband-s-Kconfig-and-Makefile-to-.patch
tech-preview/xeon-phi/0010-Update-qib-for-XEON-PHI-support.patch
tech-preview/xeon-phi/0011-correct-ib_addr.h-for-older-kernels.patch
tech-preview/xeon-phi/0012-add-mlx4-cq_comp-locking-already-done-in-event-handl.patch

index 97f8137f3ad0d2012ddd86ba936148ad43f7edee..0a2ac55e4e9d1e967ef594cb23cf4576505e80bc 100644 (file)
@@ -8,7 +8,7 @@
 # blocking_recv:   Use blocking version of scif_recv() (int)(default:1)
 # scif_loopback:   Use SCIF lookback instead of kernel copy based loopback (int)(default:0)
 # host_proxy:     Proxy card side RDMA operations to host (int)(default:0)
-# new_ib_type:    Use new transport type dedicated to IBSCIF (int)(default:0)
+# new_ib_type:    Use new transport type dedicated to IBSCIF (int)(default:1)
 #
 # over-ride default options for kernel module:
 # options ibscif enable_fast_rdma=1
index 9132e70954072b929e67b272fc2fd0629e0a0193..d34de1414471e94699eb2c1ec0428a5079c7bb49 100755 (executable)
@@ -191,13 +191,14 @@ start()
                        (/usr/sbin/ibpd &)
                        retval=$?
                fi
+
                modprobe ib_uverbs &&
                modprobe ibp_server &&
                modprobe ibp_cm_server &&
                modprobe ibp_sa_server &&
                modprobe ibscif
 
-               retval=$?
+               retval+=$?
                [ $retval -eq 0 ] && eval $_success || eval $_failure
        fi
 
@@ -214,14 +215,6 @@ start()
        return $retval
 }
 
-stop_module()
-{
-       #if needed to return proper status
-       if [ `grep -c $1 /proc/modules` -ne 0 ] ; then
-               rmmod $1 &> /dev/null
-       fi
-}
-
 stop()
 {
        echo $"Stopping OFED Stack:"
@@ -233,15 +226,16 @@ stop()
 
        if [ "$nohost" -eq 0 ]; then
                echo -n "host"
-               stop_module ibscif
-               retval=$?
 
-               stop_module ibp_sa_server
-               stop_module ibp_cm_server
+               rmmod ibscif &> /dev/null
+               retval=$?
+               rmmod ibp_sa_server &> /dev/null
+               retval+=$?
+               rmmod ibp_cm_server &> /dev/null
                retval+=$?
 
                kill $(pidof /usr/sbin/ibpd) &>/dev/null
-               stop_module ibp_server
+               rmmod ibp_server &> /dev/null
                retval+=$?
 
                [ $retval -eq 0 ] && eval $_success || eval $_failure
index c3b2c55c69ced042cb653b161fe8932c935c9526..ce066c2913329443a767c893ca06f7f072ca2183 100644 (file)
@@ -1,7 +1,4 @@
-From c01faf2a8053f8968b9bac84a4cbd54a9952d472 Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Tue, 21 Jan 2014 08:59:29 -0800
-Subject: [PATCH 01/12] ib_core add mic node and scif transport types
+xeon-phi: ib_core add mic node and scif transport types
 
 The OFED SCIF driver implements a software-emulated RDMA device to allow OFED
 based applications, such as Intel MPI, to run on Intel(R) MIC Architecture
@@ -10,9 +7,9 @@ node communication within a single platform, where a node is a coprocessor
 or the host processor.  This patch adds new node and transport types to the
 ib_core kernel module to distinguish this new RDMA interface type.
 ---
-diff -urN a0/drivers/infiniband/core/sysfs.c a1/drivers/infiniband/core/sysfs.c
---- a0/drivers/infiniband/core/sysfs.c 2015-01-05 13:35:35.692687746 -0800
-+++ a1/drivers/infiniband/core/sysfs.c 2015-01-05 13:46:38.792659814 -0800
+diff -ruN a/drivers/infiniband/core/sysfs.c a1/drivers/infiniband/core/sysfs.c
+--- a/drivers/infiniband/core/sysfs.c  2015-09-10 09:29:25.232891731 -0700
++++ a1/drivers/infiniband/core/sysfs.c 2015-09-10 09:31:06.464899773 -0700
 @@ -253,6 +253,8 @@
                return sprintf(buf, "%s\n", "InfiniBand");
        case IB_LINK_LAYER_ETHERNET:
@@ -30,9 +27,9 @@ diff -urN a0/drivers/infiniband/core/sysfs.c a1/drivers/infiniband/core/sysfs.c
        default:                  return sprintf(buf, "%d: <unknown>\n", dev->node_type);
        }
  }
-diff -urN a0/drivers/infiniband/core/verbs.c a1/drivers/infiniband/core/verbs.c
---- a0/drivers/infiniband/core/verbs.c 2015-01-05 13:35:35.693687746 -0800
-+++ a1/drivers/infiniband/core/verbs.c 2015-01-05 13:49:08.470653509 -0800
+diff -ruN a/drivers/infiniband/core/verbs.c a1/drivers/infiniband/core/verbs.c
+--- a/drivers/infiniband/core/verbs.c  2015-09-10 09:29:25.230891773 -0700
++++ a1/drivers/infiniband/core/verbs.c 2015-09-10 09:31:06.465900979 -0700
 @@ -121,6 +121,8 @@
                return RDMA_TRANSPORT_USNIC;
        case RDMA_NODE_USNIC_UDP:
@@ -51,9 +48,9 @@ diff -urN a0/drivers/infiniband/core/verbs.c a1/drivers/infiniband/core/verbs.c
        default:
                return IB_LINK_LAYER_UNSPECIFIED;
        }
-diff -urN a0/include/rdma/ib_verbs.h a1/include/rdma/ib_verbs.h
---- a0/include/rdma/ib_verbs.h 2015-01-05 13:45:40.299662278 -0800
-+++ a1/include/rdma/ib_verbs.h 2015-01-05 13:50:57.590648913 -0800
+diff -ruN a/include/rdma/ib_verbs.h a1/include/rdma/ib_verbs.h
+--- a/include/rdma/ib_verbs.h  2015-09-10 09:29:25.240891724 -0700
++++ a1/include/rdma/ib_verbs.h 2015-09-10 09:31:06.466900599 -0700
 @@ -75,13 +75,15 @@
        RDMA_NODE_RNIC,
        RDMA_NODE_USNIC,
@@ -79,4 +76,3 @@ diff -urN a0/include/rdma/ib_verbs.h a1/include/rdma/ib_verbs.h
  };
  
  enum ib_device_cap_flags {
-Binary files a0/include/rdma/.ib_verbs.h.rej.swp and a1/include/rdma/.ib_verbs.h.rej.swp differ
index 27e90b2515307585d4bf5be583be3e14120adc40..49aaa0a6dc027012efbb075a08fe808b40b76432 100644 (file)
@@ -1,15 +1,12 @@
-From faf3b3f931806d4f044068c4e9b2ca4482a9177a Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Tue, 3 Jun 2014 09:50:57 -0700
-Subject: [PATCH 02/12] rdma_cm add mic node and scif transport types
+xeon-phi: rdma_cm add mic node and scif transport types
 
 The OFED SCIF driver can leverage the iWARP cm calls to establish connections.
 This patch utilizes the new node and transport types in the rdma cm to call
 the underlying driver as needed.
 ---
-diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
---- a1/drivers/infiniband/core/cma.c   2015-01-05 13:46:27.953660271 -0800
-+++ a2/drivers/infiniband/core/cma.c   2015-01-05 14:05:11.897612926 -0800
+diff -ruN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
+--- a1/drivers/infiniband/core/cma.c   2015-09-10 09:30:08.319958447 -0700
++++ a2/drivers/infiniband/core/cma.c   2015-09-10 09:31:32.894900298 -0700
 @@ -747,6 +747,7 @@
                        qp_attr->rq_psn = id_priv->seq_num;
                break;
@@ -26,7 +23,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
                        if (id_priv->cm_id.iw)
                                iw_destroy_cm_id(id_priv->cm_id.iw);
                        break;
-@@ -1994,6 +1996,7 @@
+@@ -1995,6 +1997,7 @@
                }
                break;
        case RDMA_TRANSPORT_IWARP:
@@ -34,7 +31,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
                ret = cma_resolve_iw_route(id_priv, timeout_ms);
                break;
        default:
-@@ -2184,6 +2187,25 @@
+@@ -2185,6 +2188,25 @@
        return ret;
  }
  
@@ -60,7 +57,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
  static int cma_bind_addr(struct rdma_cm_id *id, struct sockaddr *src_addr,
                         struct sockaddr *dst_addr)
  {
-@@ -2225,9 +2247,12 @@
+@@ -2226,9 +2248,12 @@
        if (cma_any_addr(dst_addr)) {
                ret = cma_resolve_loopback(id_priv);
        } else {
@@ -75,7 +72,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
                        ret = rdma_resolve_ip(&addr_client, cma_src_addr(id_priv),
                                              dst_addr, &id->route.addr.dev_addr,
                                              timeout_ms, addr_handler, id_priv);
-@@ -2598,6 +2623,7 @@
+@@ -2599,6 +2624,7 @@
                                goto err;
                        break;
                case RDMA_TRANSPORT_IWARP:
@@ -83,7 +80,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
                        ret = cma_iw_listen(id_priv, backlog);
                        if (ret)
                                goto err;
-@@ -2946,6 +2972,7 @@
+@@ -2948,6 +2974,7 @@
                        ret = cma_connect_ib(id_priv, conn_param);
                break;
        case RDMA_TRANSPORT_IWARP:
@@ -91,7 +88,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
                ret = cma_connect_iw(id_priv, conn_param);
                break;
        default:
-@@ -3073,6 +3100,7 @@
+@@ -3075,6 +3102,7 @@
                }
                break;
        case RDMA_TRANSPORT_IWARP:
@@ -99,7 +96,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
                ret = cma_accept_iw(id_priv, conn_param);
                break;
        default:
-@@ -3133,6 +3161,7 @@
+@@ -3135,6 +3163,7 @@
                                             0, private_data, private_data_len);
                break;
        case RDMA_TRANSPORT_IWARP:
@@ -107,7 +104,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c
                ret = iw_cm_reject(id_priv->cm_id.iw,
                                   private_data, private_data_len);
                break;
-@@ -3163,6 +3192,7 @@
+@@ -3165,6 +3194,7 @@
                        ib_send_cm_drep(id_priv->cm_id.ib, NULL, 0);
                break;
        case RDMA_TRANSPORT_IWARP:
index 113a3e9ef2f5d89a4948a00b3b27abba14d1fd35..fcf9bbb16af0163fea1c8964ddd7e98da8007195 100644 (file)
@@ -1,16 +1,13 @@
-From 2ddd9c09050d6f74a2ea9e3e21a76510bbdff155 Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Thu, 6 Feb 2014 14:23:36 -0800
-Subject: [PATCH 03/12] add context based udata support
+xeon-phi: add context based udata support
 
 Normally the copy_to_user and copy_from_user calls are used to access vendor
 private data when allocating resources from processes.  However, when the
 processes are running on MIC, this communication is proxied to the host kernel
 via SCIF.  This patch allows setup of context-based udata access routines.
 ---
-diff -urN a2/drivers/infiniband/core/uverbs_cmd.c a3/drivers/infiniband/core/uverbs_cmd.c
---- a2/drivers/infiniband/core/uverbs_cmd.c    2015-01-05 13:59:55.217626266 -0800
-+++ a3/drivers/infiniband/core/uverbs_cmd.c    2015-01-05 14:30:40.647548530 -0800
+diff -ruN a2/drivers/infiniband/core/uverbs_cmd.c a3/drivers/infiniband/core/uverbs_cmd.c
+--- a2/drivers/infiniband/core/uverbs_cmd.c    2015-09-10 09:31:23.790958256 -0700
++++ a3/drivers/infiniband/core/uverbs_cmd.c    2015-09-10 09:32:01.419900874 -0700
 @@ -57,6 +57,21 @@
  static struct uverbs_lock_class xrcd_lock_class = { .name = "XRCD-uobj" };
  static struct uverbs_lock_class rule_lock_class = { .name = "RULE-uobj" };
@@ -41,10 +38,9 @@ diff -urN a2/drivers/infiniband/core/uverbs_cmd.c a3/drivers/infiniband/core/uve
        ucontext->device = ibdev;
        INIT_LIST_HEAD(&ucontext->pd_list);
        INIT_LIST_HEAD(&ucontext->mr_list);
-Binary files a2/drivers/infiniband/core/.uverbs_cmd.c.rej.swp and a3/drivers/infiniband/core/.uverbs_cmd.c.rej.swp differ
-diff -urN a2/drivers/infiniband/core/uverbs.h a3/drivers/infiniband/core/uverbs.h
---- a2/drivers/infiniband/core/uverbs.h        2015-01-05 13:59:55.216626266 -0800
-+++ a3/drivers/infiniband/core/uverbs.h        2015-01-05 14:29:27.559551609 -0800
+diff -ruN a2/drivers/infiniband/core/uverbs.h a3/drivers/infiniband/core/uverbs.h
+--- a2/drivers/infiniband/core/uverbs.h        2015-09-10 09:31:23.788958210 -0700
++++ a3/drivers/infiniband/core/uverbs.h        2015-09-10 09:32:01.420901195 -0700
 @@ -47,8 +47,11 @@
  #include <rdma/ib_umem.h>
  #include <rdma/ib_user_verbs.h>
@@ -65,9 +61,9 @@ diff -urN a2/drivers/infiniband/core/uverbs.h a3/drivers/infiniband/core/uverbs.
                (udata)->inbuf  = (ilen) ? (const void __user *) (ibuf) : NULL; \
                (udata)->outbuf = (olen) ? (void __user *) (obuf) : NULL;       \
                (udata)->inlen  = (ilen);                                       \
-diff -urN a2/include/rdma/ib_verbs.h a3/include/rdma/ib_verbs.h
---- a2/include/rdma/ib_verbs.h 2015-01-05 13:59:55.219626266 -0800
-+++ a3/include/rdma/ib_verbs.h 2015-01-05 14:18:48.871578512 -0800
+diff -ruN a2/include/rdma/ib_verbs.h a3/include/rdma/ib_verbs.h
+--- a2/include/rdma/ib_verbs.h 2015-09-10 09:31:23.754932456 -0700
++++ a3/include/rdma/ib_verbs.h 2015-09-10 09:32:01.420901195 -0700
 @@ -1147,7 +1147,14 @@
        int                     live;
  };
index a483e599a89f63b26fb3b2385210cb9854a4c921..744dd2185ecac686d6f3cf9c55503060ecb8b36f 100644 (file)
@@ -1,16 +1,13 @@
-From 8b06f1090da0e12c6012d0d13d8b48c69640a6a7 Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Thu, 6 Feb 2014 14:08:02 -0800
-Subject: [PATCH 04/12] add context based umem support
+xeon-phi: add context based umem support
 
 The ib_umem_get routine calls get_user_pages to pin pages and create the
 ib_umem structure.  Memory on MIC, however, must be mapped through SCIF for
 access across PCI.  This patch allows setup of context-based ib_umem mapping
 routines.
 ---
-diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c
---- a3/drivers/infiniband/core/umem.c  2015-01-05 14:12:52.117593540 -0800
-+++ a4/drivers/infiniband/core/umem.c  2015-01-05 14:41:51.927520253 -0800
+diff -ruN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c
+--- a3/drivers/infiniband/core/umem.c  2015-09-10 09:31:52.628958359 -0700
++++ a4/drivers/infiniband/core/umem.c  2015-09-10 09:32:16.722901309 -0700
 @@ -57,6 +57,10 @@
        for_each_sg(umem->sg_head.sgl, sg, umem->npages, i) {
  
@@ -96,7 +93,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c
                            size_t size, int access, int dmasync)
  {
        struct ib_umem *umem;
-@@ -101,7 +162,6 @@
+@@ -109,7 +170,6 @@
        if (!umem)
                return ERR_PTR(-ENOMEM);
  
@@ -104,7 +101,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c
        umem->length    = size;
        umem->offset    = addr & ~PAGE_MASK;
        umem->page_size = PAGE_SIZE;
-@@ -163,11 +223,18 @@
+@@ -171,11 +231,18 @@
        sg_list_start = umem->sg_head.sgl;
  
        while (npages) {
@@ -123,7 +120,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c
                if (ret < 0)
                        goto out;
  
-@@ -219,7 +286,6 @@
+@@ -227,7 +294,6 @@
  
        return ret < 0 ? ERR_PTR(ret) : umem;
  }
@@ -131,7 +128,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c
  
  static void ib_umem_account(struct work_struct *work)
  {
-@@ -237,10 +303,10 @@
+@@ -245,10 +311,10 @@
  }
  
  /**
@@ -144,7 +141,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c
  {
        struct ib_ucontext *context = umem->context;
        struct mm_struct *mm;
-@@ -290,9 +356,8 @@
+@@ -298,9 +364,8 @@
  out:
        kfree(umem);
  }
@@ -155,7 +152,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c
  {
        int shift;
        int i;
-@@ -307,4 +372,40 @@
+@@ -315,4 +380,40 @@
  
        return n;
  }
@@ -196,9 +193,9 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c
 +              ops->page_count(umem) : ib_page_count_umem(umem);
 +}
  EXPORT_SYMBOL(ib_umem_page_count);
-diff -urN a3/include/rdma/ib_verbs.h a4/include/rdma/ib_verbs.h
---- a3/include/rdma/ib_verbs.h 2015-01-05 14:18:48.871578512 -0800
-+++ a4/include/rdma/ib_verbs.h 2015-01-05 14:36:00.826535043 -0800
+diff -ruN a3/include/rdma/ib_verbs.h a4/include/rdma/ib_verbs.h
+--- a3/include/rdma/ib_verbs.h 2015-09-10 09:32:01.420901195 -0700
++++ a4/include/rdma/ib_verbs.h 2015-09-10 09:32:16.723901528 -0700
 @@ -1122,7 +1122,18 @@
        u8      page_shift;
  };
index 7c97357ecf750bbfe4403dce246086ae5265dd68..c620a82f3cdb9c9b67b56d6b9cbcda6c55ba2b29 100644 (file)
@@ -1,7 +1,4 @@
-From 8e3cff460efe00954b4c99ea23e42527c234c3f9 Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Tue, 4 Feb 2014 12:22:38 -0800
-Subject: [PATCH 05/12] allow mic ipoib qp creation
+xeon-phi: allow mic ipoib qp creation
 
 From the host point of view, each MIC kernel appears as a "user-mode process"
 to allow address translation to access the correct coprocessor mapped across
@@ -11,9 +8,9 @@ space.  Because these create_flags cannot be set by normal user-mode calls
 through ib_uverbs, moving the check is not an issue.  This patch allows the
 IPoIB driver on MIC to create QPs correctly.
 ---
-diff -urN a4/drivers/infiniband/hw/mlx4/qp.c a5/drivers/infiniband/hw/mlx4/qp.c
---- a4/drivers/infiniband/hw/mlx4/qp.c 2015-01-05 14:35:38.055536002 -0800
-+++ a5/drivers/infiniband/hw/mlx4/qp.c 2015-01-08 09:50:29.971123797 -0800
+diff -ruN a4/drivers/infiniband/hw/mlx4/qp.c a5/drivers/infiniband/hw/mlx4/qp.c
+--- a4/drivers/infiniband/hw/mlx4/qp.c 2015-09-10 09:32:10.146958289 -0700
++++ a5/drivers/infiniband/hw/mlx4/qp.c 2015-09-10 09:32:44.059932465 -0700
 @@ -692,6 +692,12 @@
  
        qp->mlx4_ib_qp_type = qp_type;
@@ -79,9 +76,9 @@ diff -urN a4/drivers/infiniband/hw/mlx4/qp.c a5/drivers/infiniband/hw/mlx4/qp.c
  
                err = create_qp_common(to_mdev(pd->device), pd, init_attr, udata,
                                       get_sqp_num(to_mdev(pd->device), init_attr),
-diff -urN a4/drivers/infiniband/hw/mlx5/qp.c a5/drivers/infiniband/hw/mlx5/qp.c
---- a4/drivers/infiniband/hw/mlx5/qp.c 2015-01-05 14:35:38.065536002 -0800
-+++ a5/drivers/infiniband/hw/mlx5/qp.c 2015-01-05 14:46:41.322508063 -0800
+diff -ruN a4/drivers/infiniband/hw/mlx5/qp.c a5/drivers/infiniband/hw/mlx5/qp.c
+--- a4/drivers/infiniband/hw/mlx5/qp.c 2015-09-10 09:32:10.150958093 -0700
++++ a5/drivers/infiniband/hw/mlx5/qp.c 2015-09-10 09:32:44.060932417 -0700
 @@ -852,6 +852,9 @@
        }
  
index ca0529c609c637ea4ee8f04df6bde38044e9e6b2..4f9aa808ce1809942e6c2de87a6c51e9ea4b08c9 100644 (file)
@@ -1,14 +1,10 @@
-From 129a1e301d8567b8d79abe19fd2d998738951cda Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Tue, 4 Feb 2014 12:23:56 -0800
-Subject: [PATCH 06/12] add scif.h to the include directory matching the
- location that is in the mpss installation
+xeon-phi: add scif.h to the include directory matching the
 
-Signed-off-by: Phil Cayton <phil.cayton@intel.com>
+location that is in the mpss installation
 ---
-diff -urN a5/include/modules/scif.h a6/include/modules/scif.h
+diff -ruN a5/include/modules/scif.h a6/include/modules/scif.h
 --- a5/include/modules/scif.h  1969-12-31 16:00:00.000000000 -0800
-+++ a6/include/modules/scif.h  2015-01-05 14:59:07.370476637 -0800
++++ a6/include/modules/scif.h  2015-09-10 09:33:19.295932526 -0700
 @@ -0,0 +1,1748 @@
 +/*
 + * Copyright 2010-2013 Intel Corporation.
index 9a6458a68694a293b882e47d9c5d7fe3f8e44f6b..a01b7df64c7bfd212111e4f7558c134727102376 100644 (file)
@@ -1,16 +1,11 @@
-From a6d3fc7a6f6d3b3b621dfbd71babbff5ae58d1dd Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Wed, 28 May 2014 15:50:26 -0700
-Subject: [PATCH 07/13] Add CCL-Direct (ibp) drivers to Infiniband
+xeon-phi: Add CCL-Direct (ibp) drivers to Infiniband
 
 This includes the base ibp server module as well as
 the server modules for sa and cm
-
-Signed-off-by: Phil Cayton <phil.cayton@intel.com>
 ---
 diff -ruN a6/drivers/infiniband/ibp/cm/cm_ibp_abi.h a7/drivers/infiniband/ibp/cm/cm_ibp_abi.h
 --- a6/drivers/infiniband/ibp/cm/cm_ibp_abi.h  1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/cm/cm_ibp_abi.h  2015-03-11 11:05:40.651368454 -0700
++++ a7/drivers/infiniband/ibp/cm/cm_ibp_abi.h  2015-09-10 09:33:35.322900652 -0700
 @@ -0,0 +1,399 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -413,7 +408,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/cm_ibp_abi.h a7/drivers/infiniband/ibp/cm
 +#endif /* CM_IBP_ABI_H */
 diff -ruN a6/drivers/infiniband/ibp/cm/cm_server_msg.c a7/drivers/infiniband/ibp/cm/cm_server_msg.c
 --- a6/drivers/infiniband/ibp/cm/cm_server_msg.c       1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/cm/cm_server_msg.c       2015-03-11 11:05:40.651368454 -0700
++++ a7/drivers/infiniband/ibp/cm/cm_server_msg.c       2015-09-10 09:33:35.324900603 -0700
 @@ -0,0 +1,1058 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -1475,7 +1470,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/cm_server_msg.c a7/drivers/infiniband/ibp
 +}
 diff -ruN a6/drivers/infiniband/ibp/cm/common.h a7/drivers/infiniband/ibp/cm/common.h
 --- a6/drivers/infiniband/ibp/cm/common.h      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/cm/common.h      2015-03-11 11:05:40.651368454 -0700
++++ a7/drivers/infiniband/ibp/cm/common.h      2015-09-10 09:33:35.324900603 -0700
 @@ -0,0 +1,106 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -1585,7 +1580,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/common.h a7/drivers/infiniband/ibp/cm/com
 +#endif /* COMMON_H */
 diff -ruN a6/drivers/infiniband/ibp/cm/ibp-abi.h a7/drivers/infiniband/ibp/cm/ibp-abi.h
 --- a6/drivers/infiniband/ibp/cm/ibp-abi.h     1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/cm/ibp-abi.h     2015-03-11 11:05:40.652368454 -0700
++++ a7/drivers/infiniband/ibp/cm/ibp-abi.h     2015-09-10 09:33:35.325932447 -0700
 @@ -0,0 +1,94 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -1683,7 +1678,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/ibp-abi.h a7/drivers/infiniband/ibp/cm/ib
 +#endif /* IBP_ABI_H */
 diff -ruN a6/drivers/infiniband/ibp/cm/ibp_exports.h a7/drivers/infiniband/ibp/cm/ibp_exports.h
 --- a6/drivers/infiniband/ibp/cm/ibp_exports.h 1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/cm/ibp_exports.h 2015-03-11 11:05:40.652368454 -0700
++++ a7/drivers/infiniband/ibp/cm/ibp_exports.h 2015-09-10 09:33:35.325932447 -0700
 @@ -0,0 +1,50 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -1737,7 +1732,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/ibp_exports.h a7/drivers/infiniband/ibp/c
 +#endif /* IBP_EXPORTS_H */
 diff -ruN a6/drivers/infiniband/ibp/cm/Makefile a7/drivers/infiniband/ibp/cm/Makefile
 --- a6/drivers/infiniband/ibp/cm/Makefile      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/cm/Makefile      2015-03-11 11:06:09.751367228 -0700
++++ a7/drivers/infiniband/ibp/cm/Makefile      2015-09-10 09:33:35.325932447 -0700
 @@ -0,0 +1,26 @@
 +KERNEL_V := $(shell uname -r)
 +
@@ -1767,7 +1762,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/Makefile a7/drivers/infiniband/ibp/cm/Mak
 +      dos2unix *.[ch] Kconfig Makefile
 diff -ruN a6/drivers/infiniband/ibp/cm/server.c a7/drivers/infiniband/ibp/cm/server.c
 --- a6/drivers/infiniband/ibp/cm/server.c      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/cm/server.c      2015-03-11 11:05:40.652368454 -0700
++++ a7/drivers/infiniband/ibp/cm/server.c      2015-09-10 09:33:35.326924807 -0700
 @@ -0,0 +1,221 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -1992,7 +1987,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/server.c a7/drivers/infiniband/ibp/cm/ser
 +module_exit(ibp_cm_server_exit);
 diff -ruN a6/drivers/infiniband/ibp/cm/server.h a7/drivers/infiniband/ibp/cm/server.h
 --- a6/drivers/infiniband/ibp/cm/server.h      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/cm/server.h      2015-03-11 11:05:40.652368454 -0700
++++ a7/drivers/infiniband/ibp/cm/server.h      2015-09-10 09:33:35.326924807 -0700
 @@ -0,0 +1,128 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -2124,7 +2119,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/server.h a7/drivers/infiniband/ibp/cm/ser
 +#endif /* SERVER_H */
 diff -ruN a6/drivers/infiniband/ibp/cm/server_msg.c a7/drivers/infiniband/ibp/cm/server_msg.c
 --- a6/drivers/infiniband/ibp/cm/server_msg.c  1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/cm/server_msg.c  2015-03-11 11:05:40.652368454 -0700
++++ a7/drivers/infiniband/ibp/cm/server_msg.c  2015-09-10 09:33:35.326924807 -0700
 @@ -0,0 +1,176 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -2304,7 +2299,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/server_msg.c a7/drivers/infiniband/ibp/cm
 +}
 diff -ruN a6/drivers/infiniband/ibp/drv/common.h a7/drivers/infiniband/ibp/drv/common.h
 --- a6/drivers/infiniband/ibp/drv/common.h     1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/drv/common.h     2015-03-11 11:05:40.653368454 -0700
++++ a7/drivers/infiniband/ibp/drv/common.h     2015-09-10 09:33:35.327932404 -0700
 @@ -0,0 +1,109 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -2417,7 +2412,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/common.h a7/drivers/infiniband/ibp/drv/c
 +#endif /* COMMON_H */
 diff -ruN a6/drivers/infiniband/ibp/drv/ibp-abi.h a7/drivers/infiniband/ibp/drv/ibp-abi.h
 --- a6/drivers/infiniband/ibp/drv/ibp-abi.h    1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/drv/ibp-abi.h    2015-03-11 11:05:40.653368454 -0700
++++ a7/drivers/infiniband/ibp/drv/ibp-abi.h    2015-09-10 09:33:35.327932404 -0700
 @@ -0,0 +1,649 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -3070,7 +3065,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/ibp-abi.h a7/drivers/infiniband/ibp/drv/
 +#endif /* IBP_ABI_H */
 diff -ruN a6/drivers/infiniband/ibp/drv/ibp.h a7/drivers/infiniband/ibp/drv/ibp.h
 --- a6/drivers/infiniband/ibp/drv/ibp.h        1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/drv/ibp.h        2015-03-11 11:05:40.653368454 -0700
++++ a7/drivers/infiniband/ibp/drv/ibp.h        2015-09-10 09:33:35.328932470 -0700
 @@ -0,0 +1,257 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -3331,7 +3326,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/ibp.h a7/drivers/infiniband/ibp/drv/ibp.
 +#endif /* IBP_H */
 diff -ruN a6/drivers/infiniband/ibp/drv/Makefile a7/drivers/infiniband/ibp/drv/Makefile
 --- a6/drivers/infiniband/ibp/drv/Makefile     1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/drv/Makefile     2015-03-11 11:06:14.420367031 -0700
++++ a7/drivers/infiniband/ibp/drv/Makefile     2015-09-10 09:33:35.328932470 -0700
 @@ -0,0 +1,26 @@
 +KERNEL_V := $(shell uname -r)
 +
@@ -3361,8 +3356,8 @@ diff -ruN a6/drivers/infiniband/ibp/drv/Makefile a7/drivers/infiniband/ibp/drv/M
 +      dos2unix *.[ch] Kconfig Makefile
 diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/server.c
 --- a6/drivers/infiniband/ibp/drv/server.c     1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/drv/server.c     2015-03-11 11:05:40.653368454 -0700
-@@ -0,0 +1,548 @@
++++ a7/drivers/infiniband/ibp/drv/server.c     2015-09-17 08:39:39.412983116 -0700
+@@ -0,0 +1,549 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
 + *
@@ -3498,7 +3493,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/s
 +static struct ibp_client *ibp_create_client(scif_epd_t ep, uint16_t node)
 +{
 +      struct ibp_client               *client;
-+      int                             ret;
++      int                             ret = -ENOMEM;
 +
 +      /* If a reconnect occurs while on the cdev_list just update the ep. */
 +      down_read(&list_rwsem);
@@ -3515,7 +3510,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/s
 +      client = kzalloc(sizeof(*client), GFP_KERNEL);
 +      if (!client) {
 +              print_err("kzalloc failed\n");
-+              return ERR_PTR(-ENOMEM);
++              goto err0;
 +      }
 +
 +      client->ep = ep;
@@ -3529,18 +3524,19 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/s
 +      client->workqueue = create_singlethread_workqueue(DRV_NAME);
 +      if (!client->workqueue) {
 +              print_err("create_singlethread_workqueue failed\n");
-+              goto err0;
++              goto err1;
 +      }
 +
 +      ret = ibp_create_cdev(client, node);
 +      if (ret)
-+              goto err1;
++              goto err2;
 +
 +      return client;
-+err1:
++err2:
 +      destroy_workqueue(client->workqueue);
-+err0:
++err1:
 +      kfree(client);
++err0:
 +      return ERR_PTR(ret);
 +}
 +
@@ -3913,7 +3909,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/s
 +module_exit(ibp_server_exit);
 diff -ruN a6/drivers/infiniband/ibp/drv/server.h a7/drivers/infiniband/ibp/drv/server.h
 --- a6/drivers/infiniband/ibp/drv/server.h     1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/drv/server.h     2015-03-11 11:05:40.654368454 -0700
++++ a7/drivers/infiniband/ibp/drv/server.h     2015-09-10 09:33:35.329932324 -0700
 @@ -0,0 +1,191 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -4108,8 +4104,8 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.h a7/drivers/infiniband/ibp/drv/s
 +#endif /* SERVER_H */
 diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/drv/server_msg.c
 --- a6/drivers/infiniband/ibp/drv/server_msg.c 1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/drv/server_msg.c 2015-03-11 11:05:40.655368454 -0700
-@@ -0,0 +1,3098 @@
++++ a7/drivers/infiniband/ibp/drv/server_msg.c 2015-09-10 09:34:50.117900541 -0700
+@@ -0,0 +1,3073 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
 + *
@@ -5533,6 +5529,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d
 +      uobj->user_handle = (uintptr_t)ucontext;
 +      kref_init(&uobj->ref);
 +      init_rwsem(&uobj->mutex);
++      INIT_LIST_HEAD(&uobj->list);
 +      lockdep_set_class(&uobj->mutex, &__key);
 +      uobj->live = 1;
 +
@@ -5545,11 +5542,10 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d
 +
 +      if (!IS_NULL_OR_ERR(uobj)) {
 +              ucontext = (struct ibp_ucontext *) uobj->user_handle;
-+              if (ucontext) {
-+                      mutex_lock(&ucontext->mutex);
-+                      list_del(&uobj->list);
-+                      mutex_unlock(&ucontext->mutex);
-+              }
++
++              mutex_lock(&ucontext->mutex);
++              list_del(&uobj->list);
++              mutex_unlock(&ucontext->mutex);
 +
 +              ibp_add_to_stack(o_stack, (void *) uobj);
 +      }
@@ -5596,11 +5592,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d
 +      if (IS_ERR(pd)) {
 +              ret = PTR_ERR(pd);
 +              print_err("ib_alloc_pd returned %d\n", ret);
-+              /*
-+               * Clear uobj's user_handle as destroy_uobj tries to list_del
-+               * uobj from the list and uobj has NOT been added yet
-+               */
-+              uobj->user_handle = 0;
 +              ibp_destroy_uobj(uobj);
 +              goto send_resp;
 +      }
@@ -5721,11 +5712,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d
 +      if (IS_ERR(ah)) {
 +              ret = PTR_ERR(ah);
 +              print_err("ib_create_ah returned %d\n", ret);
-+              /*
-+               * Clear uobj's user_handle as destroy_uobj tries to list_del
-+               * uobj from the list and uobj has NOT been added yet
-+               */
-+              uobj->user_handle = 0;
 +              ibp_destroy_uobj(uobj);
 +              goto send_resp;
 +      }
@@ -5908,11 +5894,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d
 +      if (IS_ERR(srq)) {
 +              ret = PTR_ERR(srq);
 +              print_err("ib_create_srq returned %d\n", ret);
-+              /*
-+               * Clear uobj's user_handle as destroy_uobj tries to list_del
-+               * uobj from the list and uobj has NOT been added yet
-+               */
-+              uobj->user_handle = 0;
 +              ibp_destroy_uobj(uobj);
 +              goto send_resp;
 +      }
@@ -6171,11 +6152,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d
 +      if (IS_ERR(qp->ibqp)) {
 +              ret = PTR_ERR(qp->ibqp);
 +              print_err("ib_create_qp returned %d\n", ret);
-+              /*
-+               * Clear uobj's user_handle as destroy_uobj tries to list_del
-+               * uobj from the list and uobj has NOT been added yet
-+               */
-+              uobj->user_handle = 0;
 +              ibp_destroy_uobj(uobj);
 +              goto send_resp;
 +      }
@@ -6601,11 +6577,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d
 +      if (IS_ERR(cq)) {
 +              ret = PTR_ERR(cq);
 +              print_err("ib_create_cq returned %d\n", ret);
-+              /*
-+               * Clear uobj's user_handle as destroy_uobj tries to list_del
-+               * uobj from the list and uobj has NOT been added yet
-+               */
-+              uobj->user_handle = 0;
 +              ibp_destroy_uobj(uobj);
 +              goto send_resp;
 +      }
@@ -7210,7 +7181,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d
 +}
 diff -ruN a6/drivers/infiniband/ibp/drv/stack.c a7/drivers/infiniband/ibp/drv/stack.c
 --- a6/drivers/infiniband/ibp/drv/stack.c      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/drv/stack.c      2015-03-11 11:05:40.655368454 -0700
++++ a7/drivers/infiniband/ibp/drv/stack.c      2015-09-10 09:33:35.331960564 -0700
 @@ -0,0 +1,102 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -7316,7 +7287,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/stack.c a7/drivers/infiniband/ibp/drv/st
 +}
 diff -ruN a6/drivers/infiniband/ibp/drv/stack.h a7/drivers/infiniband/ibp/drv/stack.h
 --- a6/drivers/infiniband/ibp/drv/stack.h      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/drv/stack.h      2015-03-11 11:05:40.655368454 -0700
++++ a7/drivers/infiniband/ibp/drv/stack.h      2015-09-10 09:33:35.331960564 -0700
 @@ -0,0 +1,57 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -7377,7 +7348,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/stack.h a7/drivers/infiniband/ibp/drv/st
 +#endif /* _IBP_STACK_H_ */
 diff -ruN a6/drivers/infiniband/ibp/Kconfig a7/drivers/infiniband/ibp/Kconfig
 --- a6/drivers/infiniband/ibp/Kconfig  1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/Kconfig  2015-03-11 11:05:40.655368454 -0700
++++ a7/drivers/infiniband/ibp/Kconfig  2015-09-10 09:33:35.331960564 -0700
 @@ -0,0 +1,16 @@
 +config IBP_SERVER
 +      tristate "CCL Direct IB Server drivers"
@@ -7397,14 +7368,14 @@ diff -ruN a6/drivers/infiniband/ibp/Kconfig a7/drivers/infiniband/ibp/Kconfig
 +        This option causes debug code to be compiled into the CCL Direct drivers.
 diff -ruN a6/drivers/infiniband/ibp/Makefile a7/drivers/infiniband/ibp/Makefile
 --- a6/drivers/infiniband/ibp/Makefile 1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/Makefile 2015-03-11 11:05:40.655368454 -0700
++++ a7/drivers/infiniband/ibp/Makefile 2015-09-10 09:33:35.331960564 -0700
 @@ -0,0 +1,3 @@
 +obj-$(CONFIG_IBP_SERVER)              += drv/
 +obj-$(CONFIG_IBP_SERVER)              += cm/
 +obj-$(CONFIG_IBP_SERVER)              += sa/
 diff -ruN a6/drivers/infiniband/ibp/sa/common.h a7/drivers/infiniband/ibp/sa/common.h
 --- a6/drivers/infiniband/ibp/sa/common.h      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/common.h      2015-03-11 11:05:40.656368454 -0700
++++ a7/drivers/infiniband/ibp/sa/common.h      2015-09-10 09:33:35.331960564 -0700
 @@ -0,0 +1,108 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -7516,7 +7487,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/common.h a7/drivers/infiniband/ibp/sa/com
 +#endif /* COMMON_H */
 diff -ruN a6/drivers/infiniband/ibp/sa/ibp-abi.h a7/drivers/infiniband/ibp/sa/ibp-abi.h
 --- a6/drivers/infiniband/ibp/sa/ibp-abi.h     1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/ibp-abi.h     2015-03-11 11:05:40.656368454 -0700
++++ a7/drivers/infiniband/ibp/sa/ibp-abi.h     2015-09-10 09:33:35.331960564 -0700
 @@ -0,0 +1,101 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -7621,7 +7592,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/ibp-abi.h a7/drivers/infiniband/ibp/sa/ib
 +#endif /* IBP_ABI_H */
 diff -ruN a6/drivers/infiniband/ibp/sa/ibp_exports.h a7/drivers/infiniband/ibp/sa/ibp_exports.h
 --- a6/drivers/infiniband/ibp/sa/ibp_exports.h 1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/ibp_exports.h 2015-03-11 11:05:40.656368454 -0700
++++ a7/drivers/infiniband/ibp/sa/ibp_exports.h 2015-09-10 09:33:35.331960564 -0700
 @@ -0,0 +1,49 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -7674,7 +7645,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/ibp_exports.h a7/drivers/infiniband/ibp/s
 +#endif /* IBP_EXPORTS_H */
 diff -ruN a6/drivers/infiniband/ibp/sa/Makefile a7/drivers/infiniband/ibp/sa/Makefile
 --- a6/drivers/infiniband/ibp/sa/Makefile      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/Makefile      2015-03-11 11:06:22.521366690 -0700
++++ a7/drivers/infiniband/ibp/sa/Makefile      2015-09-10 09:33:35.331960564 -0700
 @@ -0,0 +1,26 @@
 +KERNEL_V := $(shell uname -r)
 +
@@ -7704,7 +7675,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/Makefile a7/drivers/infiniband/ibp/sa/Mak
 +      dos2unix *.[ch] Kconfig Makefile
 diff -ruN a6/drivers/infiniband/ibp/sa/sa_ibp_abi.h a7/drivers/infiniband/ibp/sa/sa_ibp_abi.h
 --- a6/drivers/infiniband/ibp/sa/sa_ibp_abi.h  1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/sa_ibp_abi.h  2015-03-11 11:05:40.656368454 -0700
++++ a7/drivers/infiniband/ibp/sa/sa_ibp_abi.h  2015-09-10 09:33:35.332958325 -0700
 @@ -0,0 +1,251 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -7959,7 +7930,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/sa_ibp_abi.h a7/drivers/infiniband/ibp/sa
 +#endif /* SA_IBP_ABI_H */
 diff -ruN a6/drivers/infiniband/ibp/sa/sa_server_msg.c a7/drivers/infiniband/ibp/sa/sa_server_msg.c
 --- a6/drivers/infiniband/ibp/sa/sa_server_msg.c       1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/sa_server_msg.c       2015-03-11 11:05:40.657368454 -0700
++++ a7/drivers/infiniband/ibp/sa/sa_server_msg.c       2015-09-10 09:33:35.332958325 -0700
 @@ -0,0 +1,970 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -8933,7 +8904,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/sa_server_msg.c a7/drivers/infiniband/ibp
 +}
 diff -ruN a6/drivers/infiniband/ibp/sa/sa_table.h a7/drivers/infiniband/ibp/sa/sa_table.h
 --- a6/drivers/infiniband/ibp/sa/sa_table.h    1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/sa_table.h    2015-03-11 11:05:40.657368454 -0700
++++ a7/drivers/infiniband/ibp/sa/sa_table.h    2015-09-10 09:33:35.332958325 -0700
 @@ -0,0 +1,131 @@
 +/*"
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -9068,7 +9039,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/sa_table.h a7/drivers/infiniband/ibp/sa/s
 +};
 diff -ruN a6/drivers/infiniband/ibp/sa/server.c a7/drivers/infiniband/ibp/sa/server.c
 --- a6/drivers/infiniband/ibp/sa/server.c      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/server.c      2015-03-11 11:05:40.657368454 -0700
++++ a7/drivers/infiniband/ibp/sa/server.c      2015-09-10 09:33:35.332958325 -0700
 @@ -0,0 +1,221 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -9293,7 +9264,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/server.c a7/drivers/infiniband/ibp/sa/ser
 +module_exit(ibp_sa_server_exit);
 diff -ruN a6/drivers/infiniband/ibp/sa/server.h a7/drivers/infiniband/ibp/sa/server.h
 --- a6/drivers/infiniband/ibp/sa/server.h      1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/server.h      2015-03-11 11:05:40.657368454 -0700
++++ a7/drivers/infiniband/ibp/sa/server.h      2015-09-10 09:33:35.332958325 -0700
 @@ -0,0 +1,172 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
@@ -9469,7 +9440,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/server.h a7/drivers/infiniband/ibp/sa/ser
 +#endif /* SERVER_H */
 diff -ruN a6/drivers/infiniband/ibp/sa/server_msg.c a7/drivers/infiniband/ibp/sa/server_msg.c
 --- a6/drivers/infiniband/ibp/sa/server_msg.c  1969-12-31 16:00:00.000000000 -0800
-+++ a7/drivers/infiniband/ibp/sa/server_msg.c  2015-03-11 11:05:40.657368454 -0700
++++ a7/drivers/infiniband/ibp/sa/server_msg.c  2015-09-10 09:33:35.332958325 -0700
 @@ -0,0 +1,185 @@
 +/*
 + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved.
index 2a79a2821dd3605f2ce95f080c81e284492d97b8..188d7465a0542c228523cfa4176e1838f934f28a 100644 (file)
@@ -1,13 +1,8 @@
-From 674c5e41008346a8d68f534d408e240b152dec5e Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Wed, 28 May 2014 15:53:58 -0700
-Subject: [PATCH 08/13] Add ibscif to the Infiniband HW directory
-
-Signed-off-by: Phil Cayton <phil.cayton@intel.com>
+xeon-phi: Add ibscif to the Infiniband HW directory
 ---
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_ah.c a8/drivers/infiniband/hw/scif/ibscif_ah.c
 --- a7/drivers/infiniband/hw/scif/ibscif_ah.c  1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_ah.c  2015-03-10 13:56:38.840575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_ah.c  2015-09-10 09:35:25.571900695 -0700
 @@ -0,0 +1,50 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -61,7 +56,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_ah.c a8/drivers/infiniband/hw/sci
 +}
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_cm.c a8/drivers/infiniband/hw/scif/ibscif_cm.c
 --- a7/drivers/infiniband/hw/scif/ibscif_cm.c  1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_cm.c  2015-03-10 13:56:38.828575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_cm.c  2015-09-10 09:35:25.572900862 -0700
 @@ -0,0 +1,515 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -580,7 +575,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_cm.c a8/drivers/infiniband/hw/sci
 +
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_cq.c a8/drivers/infiniband/hw/scif/ibscif_cq.c
 --- a7/drivers/infiniband/hw/scif/ibscif_cq.c  1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_cq.c  2015-03-10 13:56:38.838575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_cq.c  2015-09-10 09:35:25.572900862 -0700
 @@ -0,0 +1,313 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -897,7 +892,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_cq.c a8/drivers/infiniband/hw/sci
 +}
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_driver.h a8/drivers/infiniband/hw/scif/ibscif_driver.h
 --- a7/drivers/infiniband/hw/scif/ibscif_driver.h      1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_driver.h      2015-03-10 13:56:38.840575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_driver.h      2015-09-10 09:35:25.573932333 -0700
 @@ -0,0 +1,787 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -1688,7 +1683,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_driver.h a8/drivers/infiniband/hw
 +#endif /* IBSCIF_DRIVER_H */
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_loopback.c a8/drivers/infiniband/hw/scif/ibscif_loopback.c
 --- a7/drivers/infiniband/hw/scif/ibscif_loopback.c    1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_loopback.c    2015-03-10 13:56:38.838575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_loopback.c    2015-09-10 09:35:25.574932378 -0700
 @@ -0,0 +1,582 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -2274,8 +2269,8 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_loopback.c a8/drivers/infiniband/
 +}
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/scif/ibscif_main.c
 --- a7/drivers/infiniband/hw/scif/ibscif_main.c        1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_main.c        2015-03-10 13:56:38.829575818 -0700
-@@ -0,0 +1,357 @@
++++ a8/drivers/infiniband/hw/scif/ibscif_main.c        2015-09-17 14:26:23.143892632 -0700
+@@ -0,0 +1,379 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
 + *
@@ -2353,12 +2348,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s
 +MODULE_PARAM(int, host_proxy, 0,
 +           "Proxy card side RDMA operations to host");
 +
-+#if ((LINUX_VERSION_CODE>=KERNEL_VERSION(3,5,0)) || CONFIG_MK1OM || CONFIG_ML1OM)
-+#define USE_NEW_IB_TYPE       1
-+#else
-+#define USE_NEW_IB_TYPE       0
-+#endif
-+MODULE_PARAM(int, new_ib_type, USE_NEW_IB_TYPE,
++MODULE_PARAM(int, new_ib_type, 1,
 +           "Use new transport type dedicated to IBSCIF");
 +
 +MODULE_PARAM(int, verbose, 0,
@@ -2506,6 +2496,23 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s
 +      return head_copied;
 +}
 +
++#if LINUX_VERSION_CODE>=KERNEL_VERSION(3,10,0)
++int ibscif_wiremap_add(void *obj, int *id)
++{
++      int ret;
++
++      write_lock_bh(&wiremap_lock);
++      ret = idr_alloc(&wiremap, obj, 0, 0, GFP_ATOMIC);
++      write_unlock_bh(&wiremap_lock);
++
++      if (ret < 0)
++              return ret;
++
++      *id = ret;
++
++      return 0;
++}
++#else
 +/*
 + * Because idr_pre_get acquires the same internal spinlock used by idr_pre_get/idr_remove
 + * calls under a write_lock_bh, we need to call idr_pre_get with bottom half disabled.
@@ -2522,7 +2529,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s
 +
 +      return ret;
 +}
-+
++ 
 +int ibscif_wiremap_add(void *obj, int *id)
 +{
 +      int ret;
@@ -2538,6 +2545,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s
 +
 +      return ret;
 +}
++#endif
 +
 +void ibscif_wiremap_del(int id)
 +{
@@ -2548,21 +2556,30 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s
 +
 +static int ibscif_init_wiremap(void)
 +{
++      int ret;
 +      /*
 +       * Instead of treating them as opaque, some applications assert that returned key
 +       * values are non-zero.  As a work-around, reserve the first key from the wiremap.
 +       */
-+      int ret = ibscif_wiremap_add(&reserved_0, &reserved_0);
++#if LINUX_VERSION_CODE>=KERNEL_VERSION(3,10,0)
++      ret = idr_alloc(&wiremap, &reserved_0, 0, 1, GFP_KERNEL);
++#else
++      ret = ibscif_wiremap_add(&reserved_0, &reserved_0);
++#endif
 +      BUG_ON(reserved_0 != 0);
 +      return ret;
 +}
 +
 +static void ibscif_free_wiremap(void)
 +{
++#if LINUX_VERSION_CODE>=KERNEL_VERSION(3,10,0)
++      idr_destroy(&wiremap);
++#else
 +      write_lock_bh(&wiremap_lock);
 +      idr_remove_all(&wiremap);
 +      idr_destroy(&wiremap);
 +      write_unlock_bh(&wiremap_lock);
++#endif
 +}
 +
 +static void ibscif_init_params(void)
@@ -2635,8 +2652,8 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s
 +module_exit(ibscif_exit);
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_mr.c a8/drivers/infiniband/hw/scif/ibscif_mr.c
 --- a7/drivers/infiniband/hw/scif/ibscif_mr.c  1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_mr.c  2015-03-10 13:56:38.828575818 -0700
-@@ -0,0 +1,559 @@
++++ a8/drivers/infiniband/hw/scif/ibscif_mr.c  2015-09-17 08:49:08.885982855 -0700
+@@ -0,0 +1,552 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
 + *
@@ -2993,14 +3010,9 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_mr.c a8/drivers/infiniband/hw/sci
 +{
 +}
 +
-+static u64 ibscif_sg_dma_address(struct ib_device *ibdev, struct scatterlist *sg)
++static void ibscif_sync_single(struct ib_device *ibdev, u64 dma, size_t size,
++                             enum dma_data_direction direction)
 +{
-+      return (u64)sg->dma_address;
-+}
-+
-+static unsigned int ibscif_sg_dma_len(struct ib_device *ibdev, struct scatterlist *sg)
-+{
-+      return sg->dma_length;
 +}
 +
 +static void *ibscif_dma_alloc_coherent(struct ib_device *ibdev, size_t size, u64 *dma_handle, gfp_t flag)
@@ -3027,10 +3039,8 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_mr.c a8/drivers/infiniband/hw/sci
 +      ibscif_dma_nop,
 +      ibscif_map_sg,
 +      ibscif_unmap_sg,
-+      ibscif_sg_dma_address,
-+      ibscif_sg_dma_len,
-+      ibscif_dma_nop,
-+      ibscif_dma_nop,
++      ibscif_sync_single,
++      ibscif_sync_single,
 +      ibscif_dma_alloc_coherent,
 +      ibscif_dma_free_coherent
 +};
@@ -3198,7 +3208,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_mr.c a8/drivers/infiniband/hw/sci
 +
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_pd.c a8/drivers/infiniband/hw/scif/ibscif_pd.c
 --- a7/drivers/infiniband/hw/scif/ibscif_pd.c  1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_pd.c  2015-03-10 13:56:38.841575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_pd.c  2015-09-10 09:35:25.575932341 -0700
 @@ -0,0 +1,56 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -3258,7 +3268,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_pd.c a8/drivers/infiniband/hw/sci
 +}
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_post.c a8/drivers/infiniband/hw/scif/ibscif_post.c
 --- a7/drivers/infiniband/hw/scif/ibscif_post.c        1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_post.c        2015-03-10 13:56:38.828575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_post.c        2015-09-10 09:35:25.576932424 -0700
 @@ -0,0 +1,306 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -3568,7 +3578,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_post.c a8/drivers/infiniband/hw/s
 +}
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_procfs.c a8/drivers/infiniband/hw/scif/ibscif_procfs.c
 --- a7/drivers/infiniband/hw/scif/ibscif_procfs.c      1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_procfs.c      2015-03-10 13:56:38.840575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_procfs.c      2015-09-10 09:35:25.576932424 -0700
 @@ -0,0 +1,180 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -3752,7 +3762,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_procfs.c a8/drivers/infiniband/hw
 +}
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_protocol.c a8/drivers/infiniband/hw/scif/ibscif_protocol.c
 --- a7/drivers/infiniband/hw/scif/ibscif_protocol.c    1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_protocol.c    2015-03-10 13:56:38.839575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_protocol.c    2015-09-10 09:35:25.579932655 -0700
 @@ -0,0 +1,2816 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -6572,7 +6582,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_protocol.c a8/drivers/infiniband/
 +}
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_protocol.h a8/drivers/infiniband/hw/scif/ibscif_protocol.h
 --- a7/drivers/infiniband/hw/scif/ibscif_protocol.h    1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_protocol.h    2015-03-10 13:56:38.840575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_protocol.h    2015-09-10 09:35:25.580932785 -0700
 @@ -0,0 +1,395 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -6971,7 +6981,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_protocol.h a8/drivers/infiniband/
 +#endif /* IBSCIF_PROTOCOL_H */
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_provider.c a8/drivers/infiniband/hw/scif/ibscif_provider.c
 --- a7/drivers/infiniband/hw/scif/ibscif_provider.c    1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_provider.c    2015-03-10 13:56:38.829575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_provider.c    2015-09-10 09:35:25.580932785 -0700
 @@ -0,0 +1,410 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -7385,7 +7395,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_provider.c a8/drivers/infiniband/
 +}
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_qp.c a8/drivers/infiniband/hw/scif/ibscif_qp.c
 --- a7/drivers/infiniband/hw/scif/ibscif_qp.c  1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_qp.c  2015-03-10 13:56:38.818575819 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_qp.c  2015-09-10 09:35:25.580932785 -0700
 @@ -0,0 +1,868 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -8257,7 +8267,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_qp.c a8/drivers/infiniband/hw/sci
 +
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_scheduler.c a8/drivers/infiniband/hw/scif/ibscif_scheduler.c
 --- a7/drivers/infiniband/hw/scif/ibscif_scheduler.c   1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_scheduler.c   2015-03-10 13:56:38.841575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_scheduler.c   2015-09-10 09:35:25.580932785 -0700
 @@ -0,0 +1,195 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -8456,7 +8466,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_scheduler.c a8/drivers/infiniband
 +}
 diff -ruN a7/drivers/infiniband/hw/scif/ibscif_util.c a8/drivers/infiniband/hw/scif/ibscif_util.c
 --- a7/drivers/infiniband/hw/scif/ibscif_util.c        1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/ibscif_util.c        2015-03-10 13:56:38.828575818 -0700
++++ a8/drivers/infiniband/hw/scif/ibscif_util.c        2015-09-10 09:35:25.581934798 -0700
 @@ -0,0 +1,623 @@
 +/*
 + * Copyright (c) 2008 Intel Corporation.  All rights reserved.
@@ -9083,7 +9093,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_util.c a8/drivers/infiniband/hw/s
 +
 diff -ruN a7/drivers/infiniband/hw/scif/Kconfig a8/drivers/infiniband/hw/scif/Kconfig
 --- a7/drivers/infiniband/hw/scif/Kconfig      1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/Kconfig      2015-03-10 13:56:38.839575818 -0700
++++ a8/drivers/infiniband/hw/scif/Kconfig      2015-09-10 09:35:25.581934798 -0700
 @@ -0,0 +1,4 @@
 +config INFINIBAND_SCIF
 +      tristate "SCIF RDMA driver support"
@@ -9091,7 +9101,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/Kconfig a8/drivers/infiniband/hw/scif/Kc
 +        RDMA over SCIF driver.
 diff -ruN a7/drivers/infiniband/hw/scif/Makefile a8/drivers/infiniband/hw/scif/Makefile
 --- a7/drivers/infiniband/hw/scif/Makefile     1969-12-31 16:00:00.000000000 -0800
-+++ a8/drivers/infiniband/hw/scif/Makefile     2015-03-11 10:17:34.663490022 -0700
++++ a8/drivers/infiniband/hw/scif/Makefile     2015-09-10 09:35:25.581934798 -0700
 @@ -0,0 +1,39 @@
 +KERNEL_V := $(shell uname -r)
 +
index bacf14f833fe3779e205cac51d2e95b422f97e33..c4e08a34e7b648f312474a13dfb0eaf0625f34a0 100644 (file)
@@ -1,22 +1,18 @@
-From 4f27d323bd47563f40a663672a331c5b2c95138e Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Tue, 4 Feb 2014 12:25:45 -0800
-Subject: [PATCH 09/12] update drivers/infiniband's Kconfig and Makefile to
- allow compilation of CCL-Direct (ibp)
+xeon-phi: update drivers/infiniband's Kconfig and Makefile to
 
-Signed-off-by: Phil Cayton <phil.cayton@intel.com>
+allow compilation of CCL-Direct (ibp)
 ---
-diff -urN a8/drivers/infiniband/hw/Makefile a9/drivers/infiniband/hw/Makefile
---- a8/drivers/infiniband/hw/Makefile  2015-01-05 15:04:13.993463721 -0800
-+++ a9/drivers/infiniband/hw/Makefile  2015-01-05 15:09:10.056451249 -0800
+diff -ruN a8/drivers/infiniband/hw/Makefile a9/drivers/infiniband/hw/Makefile
+--- a8/drivers/infiniband/hw/Makefile  2015-09-10 09:35:14.874958188 -0700
++++ a9/drivers/infiniband/hw/Makefile  2015-09-10 09:35:42.139932498 -0700
 @@ -10,3 +10,4 @@
  obj-$(CONFIG_INFINIBAND_NES)          += nes/
  obj-$(CONFIG_INFINIBAND_OCRDMA)               += ocrdma/
  obj-$(CONFIG_INFINIBAND_USNIC)                += usnic/
 +obj-$(CONFIG_INFINIBAND_SCIF)         += scif/
-diff -urN a8/drivers/infiniband/Kconfig a9/drivers/infiniband/Kconfig
---- a8/drivers/infiniband/Kconfig      2015-01-05 15:04:14.001463720 -0800
-+++ a9/drivers/infiniband/Kconfig      2015-01-05 15:07:03.176456594 -0800
+diff -ruN a8/drivers/infiniband/Kconfig a9/drivers/infiniband/Kconfig
+--- a8/drivers/infiniband/Kconfig      2015-09-10 09:35:14.875958141 -0700
++++ a9/drivers/infiniband/Kconfig      2015-09-10 09:35:42.139932498 -0700
 @@ -55,6 +55,9 @@
  source "drivers/infiniband/hw/nes/Kconfig"
  source "drivers/infiniband/hw/ocrdma/Kconfig"
@@ -27,9 +23,9 @@ diff -urN a8/drivers/infiniband/Kconfig a9/drivers/infiniband/Kconfig
  
  source "drivers/infiniband/ulp/ipoib/Kconfig"
  
-diff -urN a8/drivers/infiniband/Makefile a9/drivers/infiniband/Makefile
---- a8/drivers/infiniband/Makefile     2015-01-05 15:04:14.001463720 -0800
-+++ a9/drivers/infiniband/Makefile     2015-01-05 15:08:25.112453143 -0800
+diff -ruN a8/drivers/infiniband/Makefile a9/drivers/infiniband/Makefile
+--- a8/drivers/infiniband/Makefile     2015-09-10 09:35:14.881958235 -0700
++++ a9/drivers/infiniband/Makefile     2015-09-10 09:35:42.140932680 -0700
 @@ -1,3 +1,4 @@
  obj-$(CONFIG_INFINIBAND)              += core/
  obj-$(CONFIG_INFINIBAND)              += hw/
index 09a8ba00ccb06b3a8a1c4e1cfe8a9419d05626f6..6df627bb67ee13560e52560fe820967668105934 100644 (file)
@@ -5,9 +5,9 @@ From: Jubin John <jubin.john@intel.com>
 Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
 Signed-off-by: Jubin John <jubin.john@intel.com>
 ---
-diff -urN a9/drivers/infiniband/hw/qib/Makefile a10/drivers/infiniband/hw/qib/Makefile
---- a9/drivers/infiniband/hw/qib/Makefile      2015-01-05 15:05:04.280461602 -0800
-+++ a10/drivers/infiniband/hw/qib/Makefile     2015-01-05 15:10:58.250446692 -0800
+diff -ruN a9/drivers/infiniband/hw/qib/Makefile a10/drivers/infiniband/hw/qib/Makefile
+--- a9/drivers/infiniband/hw/qib/Makefile      2015-09-10 09:35:36.420958201 -0700
++++ a10/drivers/infiniband/hw/qib/Makefile     2015-09-10 09:36:03.135901227 -0700
 @@ -14,3 +14,8 @@
  ib_qib-$(CONFIG_X86_64) += qib_wc_x86_64.o
  ib_qib-$(CONFIG_PPC64) += qib_wc_ppc64.o
@@ -17,9 +17,9 @@ diff -urN a9/drivers/infiniband/hw/qib/Makefile a10/drivers/infiniband/hw/qib/Ma
 +ib_qib-y += qib_knx.o
 +ccflags-y += -DQIB_CONFIG_KNX
 +endif
-diff -urN a9/drivers/infiniband/hw/qib/qib_common.h a10/drivers/infiniband/hw/qib/qib_common.h
---- a9/drivers/infiniband/hw/qib/qib_common.h  2015-01-05 15:05:04.281461602 -0800
-+++ a10/drivers/infiniband/hw/qib/qib_common.h 2015-01-05 15:10:58.250446692 -0800
+diff -ruN a9/drivers/infiniband/hw/qib/qib_common.h a10/drivers/infiniband/hw/qib/qib_common.h
+--- a9/drivers/infiniband/hw/qib/qib_common.h  2015-09-10 09:35:36.420958201 -0700
++++ a10/drivers/infiniband/hw/qib/qib_common.h 2015-09-10 09:36:03.136900809 -0700
 @@ -1,4 +1,5 @@
  /*
 + * Copyright (c) 2012 Intel Corporation. All rights reserved.
@@ -40,9 +40,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_common.h a10/drivers/infiniband/hw/qi
  
        /* size of struct base_info to write to */
        __u32 spu_base_info_size;
-diff -urN a9/drivers/infiniband/hw/qib/qib_file_ops.c a10/drivers/infiniband/hw/qib/qib_file_ops.c
---- a9/drivers/infiniband/hw/qib/qib_file_ops.c        2015-01-05 15:05:04.280461602 -0800
-+++ a10/drivers/infiniband/hw/qib/qib_file_ops.c       2015-01-05 15:10:58.251446692 -0800
+diff -ruN a9/drivers/infiniband/hw/qib/qib_file_ops.c a10/drivers/infiniband/hw/qib/qib_file_ops.c
+--- a9/drivers/infiniband/hw/qib/qib_file_ops.c        2015-09-10 09:35:36.418958234 -0700
++++ a10/drivers/infiniband/hw/qib/qib_file_ops.c       2015-09-10 09:36:03.138932454 -0700
 @@ -48,6 +48,7 @@
  #include "qib.h"
  #include "qib_common.h"
@@ -553,9 +553,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_file_ops.c a10/drivers/infiniband/hw/
                break;
  
        case QIB_CMD_USER_INIT:
-diff -urN a9/drivers/infiniband/hw/qib/qib.h a10/drivers/infiniband/hw/qib/qib.h
---- a9/drivers/infiniband/hw/qib/qib.h 2015-01-05 15:05:04.280461602 -0800
-+++ a10/drivers/infiniband/hw/qib/qib.h        2015-01-05 15:10:58.250446692 -0800
+diff -ruN a9/drivers/infiniband/hw/qib/qib.h a10/drivers/infiniband/hw/qib/qib.h
+--- a9/drivers/infiniband/hw/qib/qib.h 2015-09-10 09:35:36.420958201 -0700
++++ a10/drivers/infiniband/hw/qib/qib.h        2015-09-10 09:36:03.139932597 -0700
 @@ -234,6 +234,10 @@
        u32 lookaside_qpn;
        /* QPs waiting for context processing */
@@ -603,9 +603,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib.h a10/drivers/infiniband/hw/qib/qib.h
  
  static inline struct qib_devdata *dd_from_ppd(struct qib_pportdata *ppd)
  {
-diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/qib_init.c
---- a9/drivers/infiniband/hw/qib/qib_init.c    2015-01-05 15:05:04.279461602 -0800
-+++ a10/drivers/infiniband/hw/qib/qib_init.c   2015-01-05 15:10:58.251446692 -0800
+diff -ruN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/qib_init.c
+--- a9/drivers/infiniband/hw/qib/qib_init.c    2015-09-10 09:35:36.420958201 -0700
++++ a10/drivers/infiniband/hw/qib/qib_init.c   2015-09-10 09:36:03.140934324 -0700
 @@ -51,6 +51,10 @@
  #include "qib_verbs.h"
  #endif
@@ -617,7 +617,7 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/
  #undef pr_fmt
  #define pr_fmt(fmt) QIB_DRV_NAME ": " fmt
  
-@@ -1301,6 +1305,12 @@
+@@ -1319,6 +1323,12 @@
        /* not fatal if it doesn't work */
        if (qib_init_qibfs())
                pr_err("Unable to register ipathfs\n");
@@ -630,7 +630,7 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/
        goto bail; /* all OK */
  
  bail_dev:
-@@ -1325,6 +1335,9 @@
+@@ -1346,6 +1356,9 @@
  {
        int ret;
  
@@ -640,7 +640,7 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/
        ret = qib_exit_qibfs();
        if (ret)
                pr_err(
-@@ -1568,6 +1581,9 @@
+@@ -1589,6 +1602,9 @@
        /* unregister from IB core */
        qib_unregister_ib_device(dd);
  
@@ -650,9 +650,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/
        /*
         * Disable the IB link, disable interrupts on the device,
         * clear dma engines, etc.
-diff -urN a9/drivers/infiniband/hw/qib/qib_knx.c a10/drivers/infiniband/hw/qib/qib_knx.c
+diff -ruN a9/drivers/infiniband/hw/qib/qib_knx.c a10/drivers/infiniband/hw/qib/qib_knx.c
 --- a9/drivers/infiniband/hw/qib/qib_knx.c     1969-12-31 16:00:00.000000000 -0800
-+++ a10/drivers/infiniband/hw/qib/qib_knx.c    2015-01-05 15:10:58.252446692 -0800
++++ a10/drivers/infiniband/hw/qib/qib_knx.c    2015-09-10 09:36:03.140934324 -0700
 @@ -0,0 +1,1532 @@
 +/*
 + * Copyright (c) 2012, 2013 Intel Corporation. All rights reserved.
@@ -2186,9 +2186,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_knx.c a10/drivers/infiniband/hw/qib/q
 +              kfree(server);
 +      }
 +}
-diff -urN a9/drivers/infiniband/hw/qib/qib_knx_common.h a10/drivers/infiniband/hw/qib/qib_knx_common.h
+diff -ruN a9/drivers/infiniband/hw/qib/qib_knx_common.h a10/drivers/infiniband/hw/qib/qib_knx_common.h
 --- a9/drivers/infiniband/hw/qib/qib_knx_common.h      1969-12-31 16:00:00.000000000 -0800
-+++ a10/drivers/infiniband/hw/qib/qib_knx_common.h     2015-01-05 15:10:58.252446692 -0800
++++ a10/drivers/infiniband/hw/qib/qib_knx_common.h     2015-09-10 09:36:03.140934324 -0700
 @@ -0,0 +1,126 @@
 +/*
 + * Copyright (c) 2013 Intel Corporation. All rights reserved.
@@ -2316,9 +2316,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_knx_common.h a10/drivers/infiniband/h
 +};
 +
 +#endif /* _QIB_KNX_COMMON_H */
-diff -urN a9/drivers/infiniband/hw/qib/qib_knx.h a10/drivers/infiniband/hw/qib/qib_knx.h
+diff -ruN a9/drivers/infiniband/hw/qib/qib_knx.h a10/drivers/infiniband/hw/qib/qib_knx.h
 --- a9/drivers/infiniband/hw/qib/qib_knx.h     1969-12-31 16:00:00.000000000 -0800
-+++ a10/drivers/infiniband/hw/qib/qib_knx.h    2015-01-05 15:10:58.252446692 -0800
++++ a10/drivers/infiniband/hw/qib/qib_knx.h    2015-09-10 09:36:03.141932310 -0700
 @@ -0,0 +1,74 @@
 +/*
 + * Copyright (c) 2012, 2013 Intel Corporation. All rights reserved.
@@ -2394,9 +2394,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_knx.h a10/drivers/infiniband/hw/qib/q
 +}
 +#endif
 +#endif /* _QIB_KNX_H */
-diff -urN a9/drivers/infiniband/hw/qib/qib_user_sdma.c a10/drivers/infiniband/hw/qib/qib_user_sdma.c
---- a9/drivers/infiniband/hw/qib/qib_user_sdma.c       2015-01-05 15:05:04.279461602 -0800
-+++ a10/drivers/infiniband/hw/qib/qib_user_sdma.c      2015-01-05 15:10:58.252446692 -0800
+diff -ruN a9/drivers/infiniband/hw/qib/qib_user_sdma.c a10/drivers/infiniband/hw/qib/qib_user_sdma.c
+--- a9/drivers/infiniband/hw/qib/qib_user_sdma.c       2015-09-10 09:35:36.421958157 -0700
++++ a10/drivers/infiniband/hw/qib/qib_user_sdma.c      2015-09-10 09:36:03.141932310 -0700
 @@ -63,80 +63,6 @@
        pid_t pid;
  };
@@ -2657,9 +2657,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_user_sdma.c a10/drivers/infiniband/hw
  {
        unsigned long flags;
  
-diff -urN a9/drivers/infiniband/hw/qib/qib_user_sdma.h a10/drivers/infiniband/hw/qib/qib_user_sdma.h
---- a9/drivers/infiniband/hw/qib/qib_user_sdma.h       2015-01-05 15:05:04.280461602 -0800
-+++ a10/drivers/infiniband/hw/qib/qib_user_sdma.h      2015-01-05 15:10:58.253446692 -0800
+diff -ruN a9/drivers/infiniband/hw/qib/qib_user_sdma.h a10/drivers/infiniband/hw/qib/qib_user_sdma.h
+--- a9/drivers/infiniband/hw/qib/qib_user_sdma.h       2015-09-10 09:35:36.419958299 -0700
++++ a10/drivers/infiniband/hw/qib/qib_user_sdma.h      2015-09-10 09:36:03.141932310 -0700
 @@ -31,12 +31,108 @@
   */
  #include <linux/device.h>
index bce5ecd6445ef372bbf58ef72e6fcdbd9a58f898..3657449a084c0482d6c6a0b8ed18322f5df516ae 100644 (file)
@@ -1,13 +1,8 @@
-From 536a8d5b5c68ecd2ca73446f25443fe8bb234a46 Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Thu, 29 May 2014 14:35:13 -0700
-Subject: [PATCH 11/12] correct ib_addr.h for older kernels
-
-Signed-off-by: Phil Cayton <phil.cayton@intel.com>
+xeon-phi: correct ib_addr.h for older kernels
 ---
-diff -urN a10/include/rdma/ib_addr.h a11/include/rdma/ib_addr.h
---- a10/include/rdma/ib_addr.h 2015-01-05 15:10:42.263447365 -0800
-+++ a11/include/rdma/ib_addr.h 2015-01-05 15:12:36.058442572 -0800
+diff -ruN a10/include/rdma/ib_addr.h a11/include/rdma/ib_addr.h
+--- a10/include/rdma/ib_addr.h 2015-09-10 09:35:55.061958421 -0700
++++ a11/include/rdma/ib_addr.h 2015-09-10 09:36:18.093901591 -0700
 @@ -239,6 +239,27 @@
                return 0;
  }
index 498b1c89cabe106c1b6cdc889cd2609d339d5f16..1b02f01ab1415bcd3f50ad4641e5eb9244e27692 100644 (file)
@@ -1,12 +1,8 @@
-From 6d88a748ca017a22c08d25e29144dd392c988eb9 Mon Sep 17 00:00:00 2001
-From: Phil Cayton <phil.cayton@intel.com>
-Date: Thu, 5 Jun 2014 09:44:42 -0700
-Subject: [PATCH 12/12] add mlx4 cq_comp locking already done in event handler
-
+xeon-phi: add mlx4 cq_comp locking already done in event handler
 ---
-diff -urN a11/drivers/net/ethernet/mellanox/mlx4/cq.c a12/drivers/net/ethernet/mellanox/mlx4/cq.c
---- a11/drivers/net/ethernet/mellanox/mlx4/cq.c        2015-01-05 15:12:24.028443079 -0800
-+++ a12/drivers/net/ethernet/mellanox/mlx4/cq.c        2015-01-05 15:14:27.994437857 -0800
+diff -ruN a11/drivers/net/ethernet/mellanox/mlx4/cq.c a12/drivers/net/ethernet/mellanox/mlx4/cq.c
+--- a11/drivers/net/ethernet/mellanox/mlx4/cq.c        2015-09-10 09:36:13.117932528 -0700
++++ a12/drivers/net/ethernet/mellanox/mlx4/cq.c        2015-09-10 09:36:38.460901094 -0700
 @@ -54,10 +54,17 @@
  
  void mlx4_cq_completion(struct mlx4_dev *dev, u32 cqn)