@@ -400,52 +400,6 @@ ssize_t ib_uverbs_get_context(struct ib_uverbs_file *file,
400
400
return ret ;
401
401
}
402
402
403
- static void copy_query_dev_fields (struct ib_uverbs_file * file ,
404
- struct ib_uverbs_query_device_resp * resp ,
405
- struct ib_device_attr * attr )
406
- {
407
- resp -> fw_ver = attr -> fw_ver ;
408
- resp -> node_guid = file -> device -> ib_dev -> node_guid ;
409
- resp -> sys_image_guid = attr -> sys_image_guid ;
410
- resp -> max_mr_size = attr -> max_mr_size ;
411
- resp -> page_size_cap = attr -> page_size_cap ;
412
- resp -> vendor_id = attr -> vendor_id ;
413
- resp -> vendor_part_id = attr -> vendor_part_id ;
414
- resp -> hw_ver = attr -> hw_ver ;
415
- resp -> max_qp = attr -> max_qp ;
416
- resp -> max_qp_wr = attr -> max_qp_wr ;
417
- resp -> device_cap_flags = attr -> device_cap_flags ;
418
- resp -> max_sge = attr -> max_sge ;
419
- resp -> max_sge_rd = attr -> max_sge_rd ;
420
- resp -> max_cq = attr -> max_cq ;
421
- resp -> max_cqe = attr -> max_cqe ;
422
- resp -> max_mr = attr -> max_mr ;
423
- resp -> max_pd = attr -> max_pd ;
424
- resp -> max_qp_rd_atom = attr -> max_qp_rd_atom ;
425
- resp -> max_ee_rd_atom = attr -> max_ee_rd_atom ;
426
- resp -> max_res_rd_atom = attr -> max_res_rd_atom ;
427
- resp -> max_qp_init_rd_atom = attr -> max_qp_init_rd_atom ;
428
- resp -> max_ee_init_rd_atom = attr -> max_ee_init_rd_atom ;
429
- resp -> atomic_cap = attr -> atomic_cap ;
430
- resp -> max_ee = attr -> max_ee ;
431
- resp -> max_rdd = attr -> max_rdd ;
432
- resp -> max_mw = attr -> max_mw ;
433
- resp -> max_raw_ipv6_qp = attr -> max_raw_ipv6_qp ;
434
- resp -> max_raw_ethy_qp = attr -> max_raw_ethy_qp ;
435
- resp -> max_mcast_grp = attr -> max_mcast_grp ;
436
- resp -> max_mcast_qp_attach = attr -> max_mcast_qp_attach ;
437
- resp -> max_total_mcast_qp_attach = attr -> max_total_mcast_qp_attach ;
438
- resp -> max_ah = attr -> max_ah ;
439
- resp -> max_fmr = attr -> max_fmr ;
440
- resp -> max_map_per_fmr = attr -> max_map_per_fmr ;
441
- resp -> max_srq = attr -> max_srq ;
442
- resp -> max_srq_wr = attr -> max_srq_wr ;
443
- resp -> max_srq_sge = attr -> max_srq_sge ;
444
- resp -> max_pkeys = attr -> max_pkeys ;
445
- resp -> local_ca_ack_delay = attr -> local_ca_ack_delay ;
446
- resp -> phys_port_cnt = file -> device -> ib_dev -> phys_port_cnt ;
447
- }
448
-
449
403
ssize_t ib_uverbs_query_device (struct ib_uverbs_file * file ,
450
404
const char __user * buf ,
451
405
int in_len , int out_len )
@@ -466,7 +420,47 @@ ssize_t ib_uverbs_query_device(struct ib_uverbs_file *file,
466
420
return ret ;
467
421
468
422
memset (& resp , 0 , sizeof resp );
469
- copy_query_dev_fields (file , & resp , & attr );
423
+
424
+ resp .fw_ver = attr .fw_ver ;
425
+ resp .node_guid = file -> device -> ib_dev -> node_guid ;
426
+ resp .sys_image_guid = attr .sys_image_guid ;
427
+ resp .max_mr_size = attr .max_mr_size ;
428
+ resp .page_size_cap = attr .page_size_cap ;
429
+ resp .vendor_id = attr .vendor_id ;
430
+ resp .vendor_part_id = attr .vendor_part_id ;
431
+ resp .hw_ver = attr .hw_ver ;
432
+ resp .max_qp = attr .max_qp ;
433
+ resp .max_qp_wr = attr .max_qp_wr ;
434
+ resp .device_cap_flags = attr .device_cap_flags ;
435
+ resp .max_sge = attr .max_sge ;
436
+ resp .max_sge_rd = attr .max_sge_rd ;
437
+ resp .max_cq = attr .max_cq ;
438
+ resp .max_cqe = attr .max_cqe ;
439
+ resp .max_mr = attr .max_mr ;
440
+ resp .max_pd = attr .max_pd ;
441
+ resp .max_qp_rd_atom = attr .max_qp_rd_atom ;
442
+ resp .max_ee_rd_atom = attr .max_ee_rd_atom ;
443
+ resp .max_res_rd_atom = attr .max_res_rd_atom ;
444
+ resp .max_qp_init_rd_atom = attr .max_qp_init_rd_atom ;
445
+ resp .max_ee_init_rd_atom = attr .max_ee_init_rd_atom ;
446
+ resp .atomic_cap = attr .atomic_cap ;
447
+ resp .max_ee = attr .max_ee ;
448
+ resp .max_rdd = attr .max_rdd ;
449
+ resp .max_mw = attr .max_mw ;
450
+ resp .max_raw_ipv6_qp = attr .max_raw_ipv6_qp ;
451
+ resp .max_raw_ethy_qp = attr .max_raw_ethy_qp ;
452
+ resp .max_mcast_grp = attr .max_mcast_grp ;
453
+ resp .max_mcast_qp_attach = attr .max_mcast_qp_attach ;
454
+ resp .max_total_mcast_qp_attach = attr .max_total_mcast_qp_attach ;
455
+ resp .max_ah = attr .max_ah ;
456
+ resp .max_fmr = attr .max_fmr ;
457
+ resp .max_map_per_fmr = attr .max_map_per_fmr ;
458
+ resp .max_srq = attr .max_srq ;
459
+ resp .max_srq_wr = attr .max_srq_wr ;
460
+ resp .max_srq_sge = attr .max_srq_sge ;
461
+ resp .max_pkeys = attr .max_pkeys ;
462
+ resp .local_ca_ack_delay = attr .local_ca_ack_delay ;
463
+ resp .phys_port_cnt = file -> device -> ib_dev -> phys_port_cnt ;
470
464
471
465
if (copy_to_user ((void __user * ) (unsigned long ) cmd .response ,
472
466
& resp , sizeof resp ))
@@ -3293,52 +3287,3 @@ ssize_t ib_uverbs_destroy_srq(struct ib_uverbs_file *file,
3293
3287
3294
3288
return ret ? ret : in_len ;
3295
3289
}
3296
-
3297
- int ib_uverbs_ex_query_device (struct ib_uverbs_file * file ,
3298
- struct ib_udata * ucore ,
3299
- struct ib_udata * uhw )
3300
- {
3301
- struct ib_uverbs_ex_query_device_resp resp ;
3302
- struct ib_uverbs_ex_query_device cmd ;
3303
- struct ib_device_attr attr ;
3304
- struct ib_device * device ;
3305
- int err ;
3306
-
3307
- device = file -> device -> ib_dev ;
3308
- if (ucore -> inlen < sizeof (cmd ))
3309
- return - EINVAL ;
3310
-
3311
- err = ib_copy_from_udata (& cmd , ucore , sizeof (cmd ));
3312
- if (err )
3313
- return err ;
3314
-
3315
- if (cmd .reserved )
3316
- return - EINVAL ;
3317
-
3318
- err = device -> query_device (device , & attr );
3319
- if (err )
3320
- return err ;
3321
-
3322
- memset (& resp , 0 , sizeof (resp ));
3323
- copy_query_dev_fields (file , & resp .base , & attr );
3324
- resp .comp_mask = 0 ;
3325
-
3326
- #ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING
3327
- if (cmd .comp_mask & IB_USER_VERBS_EX_QUERY_DEVICE_ODP ) {
3328
- resp .odp_caps .general_caps = attr .odp_caps .general_caps ;
3329
- resp .odp_caps .per_transport_caps .rc_odp_caps =
3330
- attr .odp_caps .per_transport_caps .rc_odp_caps ;
3331
- resp .odp_caps .per_transport_caps .uc_odp_caps =
3332
- attr .odp_caps .per_transport_caps .uc_odp_caps ;
3333
- resp .odp_caps .per_transport_caps .ud_odp_caps =
3334
- attr .odp_caps .per_transport_caps .ud_odp_caps ;
3335
- resp .comp_mask |= IB_USER_VERBS_EX_QUERY_DEVICE_ODP ;
3336
- }
3337
- #endif
3338
-
3339
- err = ib_copy_to_udata (ucore , & resp , sizeof (resp ));
3340
- if (err )
3341
- return err ;
3342
-
3343
- return 0 ;
3344
- }
0 commit comments