@@ -143,6 +143,50 @@ static const struct attribute_group ocrdma_attr_group = {
143
143
.attrs = ocrdma_attributes ,
144
144
};
145
145
146
+ static const struct ib_device_ops ocrdma_dev_ops = {
147
+ .alloc_mr = ocrdma_alloc_mr ,
148
+ .alloc_pd = ocrdma_alloc_pd ,
149
+ .alloc_ucontext = ocrdma_alloc_ucontext ,
150
+ .create_ah = ocrdma_create_ah ,
151
+ .create_cq = ocrdma_create_cq ,
152
+ .create_qp = ocrdma_create_qp ,
153
+ .dealloc_pd = ocrdma_dealloc_pd ,
154
+ .dealloc_ucontext = ocrdma_dealloc_ucontext ,
155
+ .dereg_mr = ocrdma_dereg_mr ,
156
+ .destroy_ah = ocrdma_destroy_ah ,
157
+ .destroy_cq = ocrdma_destroy_cq ,
158
+ .destroy_qp = ocrdma_destroy_qp ,
159
+ .get_dev_fw_str = get_dev_fw_str ,
160
+ .get_dma_mr = ocrdma_get_dma_mr ,
161
+ .get_link_layer = ocrdma_link_layer ,
162
+ .get_netdev = ocrdma_get_netdev ,
163
+ .get_port_immutable = ocrdma_port_immutable ,
164
+ .map_mr_sg = ocrdma_map_mr_sg ,
165
+ .mmap = ocrdma_mmap ,
166
+ .modify_port = ocrdma_modify_port ,
167
+ .modify_qp = ocrdma_modify_qp ,
168
+ .poll_cq = ocrdma_poll_cq ,
169
+ .post_recv = ocrdma_post_recv ,
170
+ .post_send = ocrdma_post_send ,
171
+ .process_mad = ocrdma_process_mad ,
172
+ .query_ah = ocrdma_query_ah ,
173
+ .query_device = ocrdma_query_device ,
174
+ .query_pkey = ocrdma_query_pkey ,
175
+ .query_port = ocrdma_query_port ,
176
+ .query_qp = ocrdma_query_qp ,
177
+ .reg_user_mr = ocrdma_reg_user_mr ,
178
+ .req_notify_cq = ocrdma_arm_cq ,
179
+ .resize_cq = ocrdma_resize_cq ,
180
+ };
181
+
182
+ static const struct ib_device_ops ocrdma_dev_srq_ops = {
183
+ .create_srq = ocrdma_create_srq ,
184
+ .destroy_srq = ocrdma_destroy_srq ,
185
+ .modify_srq = ocrdma_modify_srq ,
186
+ .post_srq_recv = ocrdma_post_srq_recv ,
187
+ .query_srq = ocrdma_query_srq ,
188
+ };
189
+
146
190
static int ocrdma_register_device (struct ocrdma_dev * dev )
147
191
{
148
192
ocrdma_get_guid (dev , (u8 * )& dev -> ibdev .node_guid );
@@ -182,50 +226,10 @@ static int ocrdma_register_device(struct ocrdma_dev *dev)
182
226
dev -> ibdev .phys_port_cnt = 1 ;
183
227
dev -> ibdev .num_comp_vectors = dev -> eq_cnt ;
184
228
185
- /* mandatory verbs. */
186
- dev -> ibdev .query_device = ocrdma_query_device ;
187
- dev -> ibdev .query_port = ocrdma_query_port ;
188
- dev -> ibdev .modify_port = ocrdma_modify_port ;
189
- dev -> ibdev .get_netdev = ocrdma_get_netdev ;
190
- dev -> ibdev .get_link_layer = ocrdma_link_layer ;
191
- dev -> ibdev .alloc_pd = ocrdma_alloc_pd ;
192
- dev -> ibdev .dealloc_pd = ocrdma_dealloc_pd ;
193
-
194
- dev -> ibdev .create_cq = ocrdma_create_cq ;
195
- dev -> ibdev .destroy_cq = ocrdma_destroy_cq ;
196
- dev -> ibdev .resize_cq = ocrdma_resize_cq ;
197
-
198
- dev -> ibdev .create_qp = ocrdma_create_qp ;
199
- dev -> ibdev .modify_qp = ocrdma_modify_qp ;
200
- dev -> ibdev .query_qp = ocrdma_query_qp ;
201
- dev -> ibdev .destroy_qp = ocrdma_destroy_qp ;
202
-
203
- dev -> ibdev .query_pkey = ocrdma_query_pkey ;
204
- dev -> ibdev .create_ah = ocrdma_create_ah ;
205
- dev -> ibdev .destroy_ah = ocrdma_destroy_ah ;
206
- dev -> ibdev .query_ah = ocrdma_query_ah ;
207
-
208
- dev -> ibdev .poll_cq = ocrdma_poll_cq ;
209
- dev -> ibdev .post_send = ocrdma_post_send ;
210
- dev -> ibdev .post_recv = ocrdma_post_recv ;
211
- dev -> ibdev .req_notify_cq = ocrdma_arm_cq ;
212
-
213
- dev -> ibdev .get_dma_mr = ocrdma_get_dma_mr ;
214
- dev -> ibdev .dereg_mr = ocrdma_dereg_mr ;
215
- dev -> ibdev .reg_user_mr = ocrdma_reg_user_mr ;
216
-
217
- dev -> ibdev .alloc_mr = ocrdma_alloc_mr ;
218
- dev -> ibdev .map_mr_sg = ocrdma_map_mr_sg ;
219
-
220
229
/* mandatory to support user space verbs consumer. */
221
- dev -> ibdev .alloc_ucontext = ocrdma_alloc_ucontext ;
222
- dev -> ibdev .dealloc_ucontext = ocrdma_dealloc_ucontext ;
223
- dev -> ibdev .mmap = ocrdma_mmap ;
224
230
dev -> ibdev .dev .parent = & dev -> nic_info .pdev -> dev ;
225
231
226
- dev -> ibdev .process_mad = ocrdma_process_mad ;
227
- dev -> ibdev .get_port_immutable = ocrdma_port_immutable ;
228
- dev -> ibdev .get_dev_fw_str = get_dev_fw_str ;
232
+ ib_set_device_ops (& dev -> ibdev , & ocrdma_dev_ops );
229
233
230
234
if (ocrdma_get_asic_type (dev ) == OCRDMA_ASIC_GEN_SKH_R ) {
231
235
dev -> ibdev .uverbs_cmd_mask |=
@@ -235,11 +239,7 @@ static int ocrdma_register_device(struct ocrdma_dev *dev)
235
239
OCRDMA_UVERBS (DESTROY_SRQ ) |
236
240
OCRDMA_UVERBS (POST_SRQ_RECV );
237
241
238
- dev -> ibdev .create_srq = ocrdma_create_srq ;
239
- dev -> ibdev .modify_srq = ocrdma_modify_srq ;
240
- dev -> ibdev .query_srq = ocrdma_query_srq ;
241
- dev -> ibdev .destroy_srq = ocrdma_destroy_srq ;
242
- dev -> ibdev .post_srq_recv = ocrdma_post_srq_recv ;
242
+ ib_set_device_ops (& dev -> ibdev , & ocrdma_dev_srq_ops );
243
243
}
244
244
rdma_set_device_sysfs_group (& dev -> ibdev , & ocrdma_attr_group );
245
245
dev -> ibdev .driver_id = RDMA_DRIVER_OCRDMA ;
0 commit comments