aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/infiniband/Kconfig11
-rw-r--r--drivers/infiniband/core/uverbs.h4
-rw-r--r--drivers/infiniband/core/uverbs_cmd.c4
-rw-r--r--drivers/infiniband/core/uverbs_main.c5
-rw-r--r--drivers/infiniband/hw/mlx4/main.c2
-rw-r--r--include/uapi/rdma/ib_user_verbs.h6
6 files changed, 0 insertions, 32 deletions
diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig
index b84791f03a27..5ceda710f516 100644
--- a/drivers/infiniband/Kconfig
+++ b/drivers/infiniband/Kconfig
@@ -31,17 +31,6 @@ config INFINIBAND_USER_ACCESS
31 libibverbs, libibcm and a hardware driver library from 31 libibverbs, libibcm and a hardware driver library from
32 <http://www.openfabrics.org/git/>. 32 <http://www.openfabrics.org/git/>.
33 33
34config INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
35 bool "Experimental and unstable ABI for userspace access to flow steering verbs"
36 depends on INFINIBAND_USER_ACCESS
37 depends on STAGING
38 ---help---
39 The final ABI for userspace access to flow steering verbs
40 has not been defined. To use the current ABI, *WHICH WILL
41 CHANGE IN THE FUTURE*, say Y here.
42
43 If unsure, say N.
44
45config INFINIBAND_USER_MEM 34config INFINIBAND_USER_MEM
46 bool 35 bool
47 depends on INFINIBAND_USER_ACCESS != n 36 depends on INFINIBAND_USER_ACCESS != n
diff --git a/drivers/infiniband/core/uverbs.h b/drivers/infiniband/core/uverbs.h
index 24adccbf92f9..bdc842e9faef 100644
--- a/drivers/infiniband/core/uverbs.h
+++ b/drivers/infiniband/core/uverbs.h
@@ -242,8 +242,6 @@ IB_UVERBS_DECLARE_CMD(create_xsrq);
242IB_UVERBS_DECLARE_CMD(open_xrcd); 242IB_UVERBS_DECLARE_CMD(open_xrcd);
243IB_UVERBS_DECLARE_CMD(close_xrcd); 243IB_UVERBS_DECLARE_CMD(close_xrcd);
244 244
245#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
246
247#define IB_UVERBS_DECLARE_EX_CMD(name) \ 245#define IB_UVERBS_DECLARE_EX_CMD(name) \
248 int ib_uverbs_ex_##name(struct ib_uverbs_file *file, \ 246 int ib_uverbs_ex_##name(struct ib_uverbs_file *file, \
249 struct ib_udata *ucore, \ 247 struct ib_udata *ucore, \
@@ -252,6 +250,4 @@ IB_UVERBS_DECLARE_CMD(close_xrcd);
252IB_UVERBS_DECLARE_EX_CMD(create_flow); 250IB_UVERBS_DECLARE_EX_CMD(create_flow);
253IB_UVERBS_DECLARE_EX_CMD(destroy_flow); 251IB_UVERBS_DECLARE_EX_CMD(destroy_flow);
254 252
255#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
256
257#endif /* UVERBS_H */ 253#endif /* UVERBS_H */
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 33a52785f812..8233744b4140 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -54,9 +54,7 @@ static struct uverbs_lock_class qp_lock_class = { .name = "QP-uobj" };
54static struct uverbs_lock_class ah_lock_class = { .name = "AH-uobj" }; 54static struct uverbs_lock_class ah_lock_class = { .name = "AH-uobj" };
55static struct uverbs_lock_class srq_lock_class = { .name = "SRQ-uobj" }; 55static struct uverbs_lock_class srq_lock_class = { .name = "SRQ-uobj" };
56static struct uverbs_lock_class xrcd_lock_class = { .name = "XRCD-uobj" }; 56static struct uverbs_lock_class xrcd_lock_class = { .name = "XRCD-uobj" };
57#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
58static struct uverbs_lock_class rule_lock_class = { .name = "RULE-uobj" }; 57static struct uverbs_lock_class rule_lock_class = { .name = "RULE-uobj" };
59#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
60 58
61/* 59/*
62 * The ib_uobject locking scheme is as follows: 60 * The ib_uobject locking scheme is as follows:
@@ -2593,7 +2591,6 @@ out_put:
2593 return ret ? ret : in_len; 2591 return ret ? ret : in_len;
2594} 2592}
2595 2593
2596#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
2597static int kern_spec_to_ib_spec(struct ib_uverbs_flow_spec *kern_spec, 2594static int kern_spec_to_ib_spec(struct ib_uverbs_flow_spec *kern_spec,
2598 union ib_flow_spec *ib_spec) 2595 union ib_flow_spec *ib_spec)
2599{ 2596{
@@ -2821,7 +2818,6 @@ int ib_uverbs_ex_destroy_flow(struct ib_uverbs_file *file,
2821 2818
2822 return ret; 2819 return ret;
2823} 2820}
2824#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
2825 2821
2826static int __uverbs_create_xsrq(struct ib_uverbs_file *file, 2822static int __uverbs_create_xsrq(struct ib_uverbs_file *file,
2827 struct ib_uverbs_create_xsrq *cmd, 2823 struct ib_uverbs_create_xsrq *cmd,
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index 189d99e76d9f..34386943ebcf 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -117,14 +117,12 @@ static ssize_t (*uverbs_cmd_table[])(struct ib_uverbs_file *file,
117 [IB_USER_VERBS_CMD_OPEN_QP] = ib_uverbs_open_qp, 117 [IB_USER_VERBS_CMD_OPEN_QP] = ib_uverbs_open_qp,
118}; 118};
119 119
120#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
121static int (*uverbs_ex_cmd_table[])(struct ib_uverbs_file *file, 120static int (*uverbs_ex_cmd_table[])(struct ib_uverbs_file *file,
122 struct ib_udata *ucore, 121 struct ib_udata *ucore,
123 struct ib_udata *uhw) = { 122 struct ib_udata *uhw) = {
124 [IB_USER_VERBS_EX_CMD_CREATE_FLOW] = ib_uverbs_ex_create_flow, 123 [IB_USER_VERBS_EX_CMD_CREATE_FLOW] = ib_uverbs_ex_create_flow,
125 [IB_USER_VERBS_EX_CMD_DESTROY_FLOW] = ib_uverbs_ex_destroy_flow 124 [IB_USER_VERBS_EX_CMD_DESTROY_FLOW] = ib_uverbs_ex_destroy_flow
126}; 125};
127#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
128 126
129static void ib_uverbs_add_one(struct ib_device *device); 127static void ib_uverbs_add_one(struct ib_device *device);
130static void ib_uverbs_remove_one(struct ib_device *device); 128static void ib_uverbs_remove_one(struct ib_device *device);
@@ -633,8 +631,6 @@ static ssize_t ib_uverbs_write(struct file *filp, const char __user *buf,
633 hdr.in_words * 4, 631 hdr.in_words * 4,
634 hdr.out_words * 4); 632 hdr.out_words * 4);
635 633
636#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
637
638 } else if (flags == IB_USER_VERBS_CMD_FLAG_EXTENDED) { 634 } else if (flags == IB_USER_VERBS_CMD_FLAG_EXTENDED) {
639 __u32 command; 635 __u32 command;
640 636
@@ -701,7 +697,6 @@ static ssize_t ib_uverbs_write(struct file *filp, const char __user *buf,
701 697
702 return written_count; 698 return written_count;
703 } 699 }
704#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
705 700
706 return -ENOSYS; 701 return -ENOSYS;
707} 702}
diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c
index 4be29fef66d6..1aad9b3e6bdd 100644
--- a/drivers/infiniband/hw/mlx4/main.c
+++ b/drivers/infiniband/hw/mlx4/main.c
@@ -1691,11 +1691,9 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
1691 ibdev->ib_dev.create_flow = mlx4_ib_create_flow; 1691 ibdev->ib_dev.create_flow = mlx4_ib_create_flow;
1692 ibdev->ib_dev.destroy_flow = mlx4_ib_destroy_flow; 1692 ibdev->ib_dev.destroy_flow = mlx4_ib_destroy_flow;
1693 1693
1694#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
1695 ibdev->ib_dev.uverbs_ex_cmd_mask |= 1694 ibdev->ib_dev.uverbs_ex_cmd_mask |=
1696 (1ull << IB_USER_VERBS_EX_CMD_CREATE_FLOW) | 1695 (1ull << IB_USER_VERBS_EX_CMD_CREATE_FLOW) |
1697 (1ull << IB_USER_VERBS_EX_CMD_DESTROY_FLOW); 1696 (1ull << IB_USER_VERBS_EX_CMD_DESTROY_FLOW);
1698#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
1699 } 1697 }
1700 1698
1701 mlx4_ib_alloc_eqs(dev, ibdev); 1699 mlx4_ib_alloc_eqs(dev, ibdev);
diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h
index 6ace125e1af6..cbfdd4ca9510 100644
--- a/include/uapi/rdma/ib_user_verbs.h
+++ b/include/uapi/rdma/ib_user_verbs.h
@@ -89,12 +89,10 @@ enum {
89 IB_USER_VERBS_CMD_OPEN_QP, 89 IB_USER_VERBS_CMD_OPEN_QP,
90}; 90};
91 91
92#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
93enum { 92enum {
94 IB_USER_VERBS_EX_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD, 93 IB_USER_VERBS_EX_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD,
95 IB_USER_VERBS_EX_CMD_DESTROY_FLOW 94 IB_USER_VERBS_EX_CMD_DESTROY_FLOW
96}; 95};
97#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
98 96
99/* 97/*
100 * Make sure that all structs defined in this file remain laid out so 98 * Make sure that all structs defined in this file remain laid out so
@@ -137,14 +135,12 @@ struct ib_uverbs_cmd_hdr {
137 __u16 out_words; 135 __u16 out_words;
138}; 136};
139 137
140#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
141struct ib_uverbs_ex_cmd_hdr { 138struct ib_uverbs_ex_cmd_hdr {
142 __u64 response; 139 __u64 response;
143 __u16 provider_in_words; 140 __u16 provider_in_words;
144 __u16 provider_out_words; 141 __u16 provider_out_words;
145 __u32 cmd_hdr_reserved; 142 __u32 cmd_hdr_reserved;
146}; 143};
147#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
148 144
149struct ib_uverbs_get_context { 145struct ib_uverbs_get_context {
150 __u64 response; 146 __u64 response;
@@ -707,7 +703,6 @@ struct ib_uverbs_detach_mcast {
707 __u64 driver_data[0]; 703 __u64 driver_data[0];
708}; 704};
709 705
710#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
711struct ib_uverbs_flow_spec_hdr { 706struct ib_uverbs_flow_spec_hdr {
712 __u32 type; 707 __u32 type;
713 __u16 size; 708 __u16 size;
@@ -802,7 +797,6 @@ struct ib_uverbs_destroy_flow {
802 __u32 comp_mask; 797 __u32 comp_mask;
803 __u32 flow_handle; 798 __u32 flow_handle;
804}; 799};
805#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
806 800
807struct ib_uverbs_create_srq { 801struct ib_uverbs_create_srq {
808 __u64 response; 802 __u64 response;