diff options
-rw-r--r-- | drivers/infiniband/Kconfig | 11 | ||||
-rw-r--r-- | drivers/infiniband/core/uverbs.h | 4 | ||||
-rw-r--r-- | drivers/infiniband/core/uverbs_cmd.c | 4 | ||||
-rw-r--r-- | drivers/infiniband/core/uverbs_main.c | 5 | ||||
-rw-r--r-- | drivers/infiniband/hw/mlx4/main.c | 2 | ||||
-rw-r--r-- | include/uapi/rdma/ib_user_verbs.h | 6 |
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 | ||
34 | config 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 | |||
45 | config INFINIBAND_USER_MEM | 34 | config 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); | |||
242 | IB_UVERBS_DECLARE_CMD(open_xrcd); | 242 | IB_UVERBS_DECLARE_CMD(open_xrcd); |
243 | IB_UVERBS_DECLARE_CMD(close_xrcd); | 243 | IB_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); | |||
252 | IB_UVERBS_DECLARE_EX_CMD(create_flow); | 250 | IB_UVERBS_DECLARE_EX_CMD(create_flow); |
253 | IB_UVERBS_DECLARE_EX_CMD(destroy_flow); | 251 | IB_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" }; | |||
54 | static struct uverbs_lock_class ah_lock_class = { .name = "AH-uobj" }; | 54 | static struct uverbs_lock_class ah_lock_class = { .name = "AH-uobj" }; |
55 | static struct uverbs_lock_class srq_lock_class = { .name = "SRQ-uobj" }; | 55 | static struct uverbs_lock_class srq_lock_class = { .name = "SRQ-uobj" }; |
56 | static struct uverbs_lock_class xrcd_lock_class = { .name = "XRCD-uobj" }; | 56 | static struct uverbs_lock_class xrcd_lock_class = { .name = "XRCD-uobj" }; |
57 | #ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING | ||
58 | static struct uverbs_lock_class rule_lock_class = { .name = "RULE-uobj" }; | 57 | static 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 | ||
2597 | static int kern_spec_to_ib_spec(struct ib_uverbs_flow_spec *kern_spec, | 2594 | static 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 | ||
2826 | static int __uverbs_create_xsrq(struct ib_uverbs_file *file, | 2822 | static 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 | ||
121 | static int (*uverbs_ex_cmd_table[])(struct ib_uverbs_file *file, | 120 | static 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 | ||
129 | static void ib_uverbs_add_one(struct ib_device *device); | 127 | static void ib_uverbs_add_one(struct ib_device *device); |
130 | static void ib_uverbs_remove_one(struct ib_device *device); | 128 | static 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 | ||
93 | enum { | 92 | enum { |
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 | ||
141 | struct ib_uverbs_ex_cmd_hdr { | 138 | struct 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 | ||
149 | struct ib_uverbs_get_context { | 145 | struct 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 | ||
711 | struct ib_uverbs_flow_spec_hdr { | 706 | struct 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 | ||
807 | struct ib_uverbs_create_srq { | 801 | struct ib_uverbs_create_srq { |
808 | __u64 response; | 802 | __u64 response; |