The sif_verbs.h file needs to be independent of
other header files to be includable from other kernel.
This is necessary to avoid duplicate definition of
the API elements. For Oracle Linux this file now moves from
drivers/infiniband/hw/sif/ to include/rdma/ to make it
available for the RDS and uvNIC drivers.
This is a temporary but necessary measure while we wait
for proper generic interfaces to be defined at the common
verbs layer.
Orabug:
24524698
Signed-off-by: Knut Omang <knut.omang@oracle.com>
*
* sif_cq.c: Implementation of completion queue logic for SIF
*/
-#include <linux/version.h>
#include <linux/sched.h>
#include <linux/random.h>
#include <rdma/ib_verbs.h>
*
* sif_defs.c: IB-to-SIF Mapper.
*/
-#include <linux/version.h>
#include <rdma/ib_verbs.h>
#include "sif_dev.h"
#include "sif_defs.h"
#ifndef __SIF_DEV_H
#define __SIF_DEV_H
-#include <linux/version.h>
#include <linux/pci.h>
#include <linux/sched.h>
#include <linux/dma-mapping.h>
#include "sif_mem.h"
-#include "sif_verbs.h"
+#include <rdma/sif_verbs.h>
#include "sif_r3.h"
*
* sif_dma.c: DMA memory mapping
*/
-#include <linux/version.h>
#include "sif_dma.h"
#include "sif_dev.h"
#include "psif_hw_data.h"
#ifndef _SIF_IDR_H
#define _SIF_IDR_H
-#include <linux/version.h>
#include <linux/idr.h>
#include <linux/mutex.h>
* sif_main.c: main entry points and initialization
*/
-#include <linux/version.h>
#include <linux/module.h>
#ifdef CONFIG_X86
#include <asm/mtrr.h>
#ifndef _SIF_MEM_H
#define _SIF_MEM_H
#include <rdma/ib_verbs.h>
+#include <rdma/sif_verbs.h>
#include "sif_user.h"
/* We need to support 4 interfaces to memory; abbreviated umem, fmr,
#include <linux/hugetlb.h>
#include <linux/highmem.h>
#include <linux/kref.h>
-#include <linux/version.h>
#include <rdma/ib_umem.h>
#include "psif_hw_setget.h"
#include "sif_defs.h"
#include <rdma/ib_verbs.h>
#include "psif_hw_data.h"
+#include <rdma/sif_verbs.h>
#include "sif_user.h"
struct sif_mem;
*
* sif_query.c: SIF implementation of some of IB query APIs
*/
-#include <linux/version.h>
#include <rdma/ib_verbs.h>
#include <rdma/ib_mad.h>
#include "sif_dev.h"
SIFMT_MAX
};
-enum sif_proxy_type {
- SIFPX_OFF, /* Default value - no proxying */
- SIFPX_EPSA_1,
- SIFPX_EPSA_2,
- SIFPX_EPSA_3,
- SIFPX_EPSA_4
-};
-
enum sif_flush_type {
NO_FLUSH,
FLUSH_SQ,
FLUSH_RQ
};
+
#endif
/* These should be multiple of 64 bytes and densely packed: */
*/
#include <linux/module.h>
-#include "sif_verbs.h"
+#include <rdma/sif_verbs.h>
#include "sif_dev.h"
#include "sif_epsc.h"
#include "psif_hw_data.h"
#include "version.h"
struct sif_version sif_version = {
-.git_repo = "sifdrv [non public commit]",
-.last_commit = "titan_1.0.0.3 transform: Update used version of EPSC_API",
+.git_repo = "sifdrv [origin/master]",
+.last_commit = "titan_1.0.4.0 Lift sif_verbs up to be independent of sif internal headers",
.git_status = "",
-.build_git_time = "Fri, 12 Aug 2016 11:24:07 +0000",
+.build_git_time = "Fri, 09 Sep 2016 09:58:31 +0000",
.build_user = "komang",
.git_psifapi_repo = "psifapi [origin/master]",
-.last_psifapi_commit = "titan_1.0.0.3 EPSC_API_VERSION(2,10) - EPSC_DIAG_COUNTERS",
+.last_psifapi_commit = "titan_1.0.4.0 Fix recently introduced checkpatch issues",
.git_psifapi_status = "",
};
/* Misc driver release info */
-#define BUILD_DATE "2016-08-12"
-#define BUILD_TIME "11:24:07"
-#define BUILD_EPOCH 1471001047
-#define TITAN_RELEASE "1.0.0.3"
+#define BUILD_DATE "2016-09-09"
+#define BUILD_TIME "09:58:31"
+#define BUILD_EPOCH 1473415111
+#define TITAN_RELEASE "1.0.4.0"
#ifndef _SIF_VERBS_H
#define _SIF_VERBS_H
#include <rdma/ib_verbs.h>
-#include "sif_user.h"
/*** sif verbs extensions ***/
};
-/* Extension bits in the qp create mask to ib_create_qp */
-/* Note that we use bits below IB_QP_CREATE_RESERVED_START */
+/* Provider specific extension bits in the qp create mask to ib_create_qp.
+ * We use the uppermost bits (mostly in the IB_QP_CREATE_RESERVED_START(b.26) - END range)
+ * to avoid conflict with future upstream bits, currently occupying bits 0-8:
+ */
enum sif_qp_create_flags {
- IB_QP_CREATE_EOIB = IB_QP_CREATE_RESERVED_END , /* Indicate that this is an Ethernet over IB QP */
- IB_QP_CREATE_RSS = IB_QP_CREATE_RESERVED_END >> 1, /* Enable receive side scaling */
- IB_QP_CREATE_HDR_SPLIT = IB_QP_CREATE_RESERVED_END >> 2, /* Enable header/data split for offloading */
- IB_QP_CREATE_RCV_DYNAMIC_MTU = IB_QP_CREATE_RESERVED_END >> 3, /* Enable receive side dynamic mtu */
- IB_QP_CREATE_PROXY = IB_QP_CREATE_RESERVED_END >> 4, /* Enable a special EPSA proxy */
- IB_QP_NO_CSUM = IB_QP_CREATE_RESERVED_END >> 5, /* No csum for qp, wqe.wr.csum = qp.magic */
- IB_QP_CREATE_SND_DYNAMIC_MTU = IB_QP_CREATE_RESERVED_END >> 6, /* Enable receive side dynamic mtu */
+ IB_QP_CREATE_EOIB = 1 << 24, /* Enable Ethernet over IB support */
+ IB_QP_CREATE_RSS = 1 << 25, /* Enable receive side scaling */
+ IB_QP_CREATE_HDR_SPLIT = 1 << 26, /* Enable header/data split for offloading */
+ IB_QP_CREATE_RCV_DYNAMIC_MTU = 1 << 27, /* Enable receive side dynamic mtu */
+ IB_QP_CREATE_PROXY = 1 << 28, /* Enable a special EPSA proxy QP */
+ IB_QP_NO_CSUM = 1 << 29, /* No csum for qp, wqe.wr.csum = qp.magic */
+ IB_QP_CREATE_SND_DYNAMIC_MTU = 1 << 30, /* Enable receive side dynamic mtu */
};
/* Extension bits in the qp attr mask to ib_modify_qp
IB_QP_SND_DYN_MTU = 1 << 29, /* Enable send side dynamic mtu */
};
-
/* Set/get the 48 bit ethernet mac address for a port on a uf
* The uf field is ignored for all ufs except uf 0 (PF)
*/
struct psif_epsc_csr_rsp;
enum psif_mbox_type;
+enum sif_proxy_type {
+ SIFPX_OFF, /* Default value - no proxying */
+ SIFPX_EPSA_1,
+ SIFPX_EPSA_2,
+ SIFPX_EPSA_3,
+ SIFPX_EPSA_4
+};
+
struct sif_verbs {
/* Exposed internal create_cq call to allow creation of proxy CQs.
* Needed by EPSA users. Implemented in sif_cq.c.