@@ -160,12 +160,16 @@ static const struct attribute_group qedr_attr_group = {
160
160
.attrs = qedr_attributes ,
161
161
};
162
162
163
+ static const struct ib_device_ops qedr_iw_dev_ops = {
164
+ .get_port_immutable = qedr_iw_port_immutable ,
165
+ .query_gid = qedr_iw_query_gid ,
166
+ };
167
+
163
168
static int qedr_iw_register_device (struct qedr_dev * dev )
164
169
{
165
170
dev -> ibdev .node_type = RDMA_NODE_RNIC ;
166
- dev -> ibdev .query_gid = qedr_iw_query_gid ;
167
171
168
- dev -> ibdev . get_port_immutable = qedr_iw_port_immutable ;
172
+ ib_set_device_ops ( & dev -> ibdev , & qedr_iw_dev_ops ) ;
169
173
170
174
dev -> ibdev .iwcm = kzalloc (sizeof (* dev -> ibdev .iwcm ), GFP_KERNEL );
171
175
if (!dev -> ibdev .iwcm )
@@ -186,13 +190,56 @@ static int qedr_iw_register_device(struct qedr_dev *dev)
186
190
return 0 ;
187
191
}
188
192
193
+ static const struct ib_device_ops qedr_roce_dev_ops = {
194
+ .get_port_immutable = qedr_roce_port_immutable ,
195
+ };
196
+
189
197
static void qedr_roce_register_device (struct qedr_dev * dev )
190
198
{
191
199
dev -> ibdev .node_type = RDMA_NODE_IB_CA ;
192
200
193
- dev -> ibdev . get_port_immutable = qedr_roce_port_immutable ;
201
+ ib_set_device_ops ( & dev -> ibdev , & qedr_roce_dev_ops ) ;
194
202
}
195
203
204
+ static const struct ib_device_ops qedr_dev_ops = {
205
+ .alloc_mr = qedr_alloc_mr ,
206
+ .alloc_pd = qedr_alloc_pd ,
207
+ .alloc_ucontext = qedr_alloc_ucontext ,
208
+ .create_ah = qedr_create_ah ,
209
+ .create_cq = qedr_create_cq ,
210
+ .create_qp = qedr_create_qp ,
211
+ .create_srq = qedr_create_srq ,
212
+ .dealloc_pd = qedr_dealloc_pd ,
213
+ .dealloc_ucontext = qedr_dealloc_ucontext ,
214
+ .dereg_mr = qedr_dereg_mr ,
215
+ .destroy_ah = qedr_destroy_ah ,
216
+ .destroy_cq = qedr_destroy_cq ,
217
+ .destroy_qp = qedr_destroy_qp ,
218
+ .destroy_srq = qedr_destroy_srq ,
219
+ .get_dev_fw_str = qedr_get_dev_fw_str ,
220
+ .get_dma_mr = qedr_get_dma_mr ,
221
+ .get_link_layer = qedr_link_layer ,
222
+ .get_netdev = qedr_get_netdev ,
223
+ .map_mr_sg = qedr_map_mr_sg ,
224
+ .mmap = qedr_mmap ,
225
+ .modify_port = qedr_modify_port ,
226
+ .modify_qp = qedr_modify_qp ,
227
+ .modify_srq = qedr_modify_srq ,
228
+ .poll_cq = qedr_poll_cq ,
229
+ .post_recv = qedr_post_recv ,
230
+ .post_send = qedr_post_send ,
231
+ .post_srq_recv = qedr_post_srq_recv ,
232
+ .process_mad = qedr_process_mad ,
233
+ .query_device = qedr_query_device ,
234
+ .query_pkey = qedr_query_pkey ,
235
+ .query_port = qedr_query_port ,
236
+ .query_qp = qedr_query_qp ,
237
+ .query_srq = qedr_query_srq ,
238
+ .reg_user_mr = qedr_reg_user_mr ,
239
+ .req_notify_cq = qedr_arm_cq ,
240
+ .resize_cq = qedr_resize_cq ,
241
+ };
242
+
196
243
static int qedr_register_device (struct qedr_dev * dev )
197
244
{
198
245
int rc ;
@@ -237,57 +284,11 @@ static int qedr_register_device(struct qedr_dev *dev)
237
284
238
285
dev -> ibdev .phys_port_cnt = 1 ;
239
286
dev -> ibdev .num_comp_vectors = dev -> num_cnq ;
240
-
241
- dev -> ibdev .query_device = qedr_query_device ;
242
- dev -> ibdev .query_port = qedr_query_port ;
243
- dev -> ibdev .modify_port = qedr_modify_port ;
244
-
245
- dev -> ibdev .alloc_ucontext = qedr_alloc_ucontext ;
246
- dev -> ibdev .dealloc_ucontext = qedr_dealloc_ucontext ;
247
- dev -> ibdev .mmap = qedr_mmap ;
248
-
249
- dev -> ibdev .alloc_pd = qedr_alloc_pd ;
250
- dev -> ibdev .dealloc_pd = qedr_dealloc_pd ;
251
-
252
- dev -> ibdev .create_cq = qedr_create_cq ;
253
- dev -> ibdev .destroy_cq = qedr_destroy_cq ;
254
- dev -> ibdev .resize_cq = qedr_resize_cq ;
255
- dev -> ibdev .req_notify_cq = qedr_arm_cq ;
256
-
257
- dev -> ibdev .create_qp = qedr_create_qp ;
258
- dev -> ibdev .modify_qp = qedr_modify_qp ;
259
- dev -> ibdev .query_qp = qedr_query_qp ;
260
- dev -> ibdev .destroy_qp = qedr_destroy_qp ;
261
-
262
- dev -> ibdev .create_srq = qedr_create_srq ;
263
- dev -> ibdev .destroy_srq = qedr_destroy_srq ;
264
- dev -> ibdev .modify_srq = qedr_modify_srq ;
265
- dev -> ibdev .query_srq = qedr_query_srq ;
266
- dev -> ibdev .post_srq_recv = qedr_post_srq_recv ;
267
- dev -> ibdev .query_pkey = qedr_query_pkey ;
268
-
269
- dev -> ibdev .create_ah = qedr_create_ah ;
270
- dev -> ibdev .destroy_ah = qedr_destroy_ah ;
271
-
272
- dev -> ibdev .get_dma_mr = qedr_get_dma_mr ;
273
- dev -> ibdev .dereg_mr = qedr_dereg_mr ;
274
- dev -> ibdev .reg_user_mr = qedr_reg_user_mr ;
275
- dev -> ibdev .alloc_mr = qedr_alloc_mr ;
276
- dev -> ibdev .map_mr_sg = qedr_map_mr_sg ;
277
-
278
- dev -> ibdev .poll_cq = qedr_poll_cq ;
279
- dev -> ibdev .post_send = qedr_post_send ;
280
- dev -> ibdev .post_recv = qedr_post_recv ;
281
-
282
- dev -> ibdev .process_mad = qedr_process_mad ;
283
-
284
- dev -> ibdev .get_netdev = qedr_get_netdev ;
285
-
286
287
dev -> ibdev .dev .parent = & dev -> pdev -> dev ;
287
288
288
- dev -> ibdev .get_link_layer = qedr_link_layer ;
289
- dev -> ibdev .get_dev_fw_str = qedr_get_dev_fw_str ;
290
289
rdma_set_device_sysfs_group (& dev -> ibdev , & qedr_attr_group );
290
+ ib_set_device_ops (& dev -> ibdev , & qedr_dev_ops );
291
+
291
292
dev -> ibdev .driver_id = RDMA_DRIVER_QEDR ;
292
293
return ib_register_device (& dev -> ibdev , "qedr%d" , NULL );
293
294
}
0 commit comments