aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mlx5
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-08-04 20:10:31 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-08-04 20:10:31 -0400
commit0cda611386b2fcbf8bb32e9a5d82bfed4856fc36 (patch)
tree1647e00675ab924edfb22b69ea3872db091b8900 /include/linux/mlx5
parentfdf1f7ff1bd7f1c6d1d5dc2b29b6b11a4f722276 (diff)
parent7f1d25b47d919cef29388aff37e7b074e65bf512 (diff)
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull base rdma updates from Doug Ledford: "Round one of 4.8 code: while this is mostly normal, there is a new driver in here (the driver was hosted outside the kernel for several years and is actually a fairly mature and well coded driver). It amounts to 13,000 of the 16,000 lines of added code in here. Summary: - Updates/fixes for iw_cxgb4 driver - Updates/fixes for mlx5 driver - Add flow steering and RSS API - Add hardware stats to mlx4 and mlx5 drivers - Add firmware version API for RDMA driver use - Add the rxe driver (this is a software RoCE driver that makes any Ethernet device a RoCE device) - Fixes for i40iw driver - Support for send only multicast joins in the cma layer - Other minor fixes" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (72 commits) Soft RoCE driver IB/core: Support for CMA multicast join flags IB/sa: Add cached attribute containing SM information to SA port IB/uverbs: Fix race between uverbs_close and remove_one IB/mthca: Clean up error unwind flow in mthca_reset() IB/mthca: NULL arg to pci_dev_put is OK IB/hfi1: NULL arg to sc_return_credits is OK IB/mlx4: Add diagnostic hardware counters net/mlx4: Query performance and diagnostics counters net/mlx4: Add diagnostic counters capability bit Use smaller 512 byte messages for portmapper messages IB/ipoib: Report SG feature regardless of HW UD CSUM capability IB/mlx4: Don't use GFP_ATOMIC for CQ resize struct IB/hfi1: Disable by default IB/rdmavt: Disable by default IB/mlx5: Fix port counter ID association to QP offset IB/mlx5: Fix iteration overrun in GSI qps i40iw: Add NULL check for puda buffer i40iw: Change dup_ack_thresh to u8 i40iw: Remove unnecessary check for moving CQ head ...
Diffstat (limited to 'include/linux/mlx5')
-rw-r--r--include/linux/mlx5/cq.h2
-rw-r--r--include/linux/mlx5/driver.h6
-rw-r--r--include/linux/mlx5/qp.h4
-rw-r--r--include/linux/mlx5/srq.h25
4 files changed, 32 insertions, 5 deletions
diff --git a/include/linux/mlx5/cq.h b/include/linux/mlx5/cq.h
index 2be976dd4966..2566f6d6444f 100644
--- a/include/linux/mlx5/cq.h
+++ b/include/linux/mlx5/cq.h
@@ -58,6 +58,8 @@ struct mlx5_core_cq {
58 void (*comp)(struct mlx5_core_cq *); 58 void (*comp)(struct mlx5_core_cq *);
59 void *priv; 59 void *priv;
60 } tasklet_ctx; 60 } tasklet_ctx;
61 int reset_notify_added;
62 struct list_head reset_notify;
61}; 63};
62 64
63 65
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h
index a041b99fceac..ccea6fb16482 100644
--- a/include/linux/mlx5/driver.h
+++ b/include/linux/mlx5/driver.h
@@ -46,6 +46,7 @@
46 46
47#include <linux/mlx5/device.h> 47#include <linux/mlx5/device.h>
48#include <linux/mlx5/doorbell.h> 48#include <linux/mlx5/doorbell.h>
49#include <linux/mlx5/srq.h>
49 50
50enum { 51enum {
51 MLX5_RQ_BITMASK_VSD = 1 << 1, 52 MLX5_RQ_BITMASK_VSD = 1 << 1,
@@ -798,11 +799,10 @@ struct mlx5_cmd_mailbox *mlx5_alloc_cmd_mailbox_chain(struct mlx5_core_dev *dev,
798void mlx5_free_cmd_mailbox_chain(struct mlx5_core_dev *dev, 799void mlx5_free_cmd_mailbox_chain(struct mlx5_core_dev *dev,
799 struct mlx5_cmd_mailbox *head); 800 struct mlx5_cmd_mailbox *head);
800int mlx5_core_create_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, 801int mlx5_core_create_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq,
801 struct mlx5_create_srq_mbox_in *in, int inlen, 802 struct mlx5_srq_attr *in);
802 int is_xrc);
803int mlx5_core_destroy_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq); 803int mlx5_core_destroy_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq);
804int mlx5_core_query_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, 804int mlx5_core_query_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq,
805 struct mlx5_query_srq_mbox_out *out); 805 struct mlx5_srq_attr *out);
806int mlx5_core_arm_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, 806int mlx5_core_arm_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq,
807 u16 lwm, int is_srq); 807 u16 lwm, int is_srq);
808void mlx5_init_mkey_table(struct mlx5_core_dev *dev); 808void mlx5_init_mkey_table(struct mlx5_core_dev *dev);
diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h
index ab310819ac36..7879bf411891 100644
--- a/include/linux/mlx5/qp.h
+++ b/include/linux/mlx5/qp.h
@@ -556,9 +556,9 @@ struct mlx5_destroy_qp_mbox_out {
556struct mlx5_modify_qp_mbox_in { 556struct mlx5_modify_qp_mbox_in {
557 struct mlx5_inbox_hdr hdr; 557 struct mlx5_inbox_hdr hdr;
558 __be32 qpn; 558 __be32 qpn;
559 u8 rsvd1[4];
560 __be32 optparam;
561 u8 rsvd0[4]; 559 u8 rsvd0[4];
560 __be32 optparam;
561 u8 rsvd1[4];
562 struct mlx5_qp_context ctx; 562 struct mlx5_qp_context ctx;
563 u8 rsvd2[16]; 563 u8 rsvd2[16];
564}; 564};
diff --git a/include/linux/mlx5/srq.h b/include/linux/mlx5/srq.h
index f43ed054a3e0..33c97dc900f8 100644
--- a/include/linux/mlx5/srq.h
+++ b/include/linux/mlx5/srq.h
@@ -35,6 +35,31 @@
35 35
36#include <linux/mlx5/driver.h> 36#include <linux/mlx5/driver.h>
37 37
38enum {
39 MLX5_SRQ_FLAG_ERR = (1 << 0),
40 MLX5_SRQ_FLAG_WQ_SIG = (1 << 1),
41};
42
43struct mlx5_srq_attr {
44 u32 type;
45 u32 flags;
46 u32 log_size;
47 u32 wqe_shift;
48 u32 log_page_size;
49 u32 wqe_cnt;
50 u32 srqn;
51 u32 xrcd;
52 u32 page_offset;
53 u32 cqn;
54 u32 pd;
55 u32 lwm;
56 u32 user_index;
57 u64 db_record;
58 u64 *pas;
59};
60
61struct mlx5_core_dev;
62
38void mlx5_init_srq_table(struct mlx5_core_dev *dev); 63void mlx5_init_srq_table(struct mlx5_core_dev *dev);
39void mlx5_cleanup_srq_table(struct mlx5_core_dev *dev); 64void mlx5_cleanup_srq_table(struct mlx5_core_dev *dev);
40 65