@@ -485,6 +485,38 @@ static const struct devlink_param bnxt_dl_params[] = {
485
485
static const struct devlink_param bnxt_dl_port_params [] = {
486
486
};
487
487
488
+ static int bnxt_dl_params_register (struct bnxt * bp )
489
+ {
490
+ int rc ;
491
+
492
+ rc = devlink_params_register (bp -> dl , bnxt_dl_params ,
493
+ ARRAY_SIZE (bnxt_dl_params ));
494
+ if (rc ) {
495
+ netdev_warn (bp -> dev , "devlink_params_register failed. rc=%d" ,
496
+ rc );
497
+ return rc ;
498
+ }
499
+ rc = devlink_port_params_register (& bp -> dl_port , bnxt_dl_port_params ,
500
+ ARRAY_SIZE (bnxt_dl_port_params ));
501
+ if (rc ) {
502
+ netdev_err (bp -> dev , "devlink_port_params_register failed" );
503
+ devlink_params_unregister (bp -> dl , bnxt_dl_params ,
504
+ ARRAY_SIZE (bnxt_dl_params ));
505
+ return rc ;
506
+ }
507
+ devlink_params_publish (bp -> dl );
508
+
509
+ return 0 ;
510
+ }
511
+
512
+ static void bnxt_dl_params_unregister (struct bnxt * bp )
513
+ {
514
+ devlink_params_unregister (bp -> dl , bnxt_dl_params ,
515
+ ARRAY_SIZE (bnxt_dl_params ));
516
+ devlink_port_params_unregister (& bp -> dl_port , bnxt_dl_port_params ,
517
+ ARRAY_SIZE (bnxt_dl_port_params ));
518
+ }
519
+
488
520
int bnxt_dl_register (struct bnxt * bp )
489
521
{
490
522
struct devlink * dl ;
@@ -520,40 +552,24 @@ int bnxt_dl_register(struct bnxt *bp)
520
552
if (!BNXT_PF (bp ))
521
553
return 0 ;
522
554
523
- rc = devlink_params_register (dl , bnxt_dl_params ,
524
- ARRAY_SIZE (bnxt_dl_params ));
525
- if (rc ) {
526
- netdev_warn (bp -> dev , "devlink_params_register failed. rc=%d" ,
527
- rc );
528
- goto err_dl_unreg ;
529
- }
530
-
531
555
devlink_port_attrs_set (& bp -> dl_port , DEVLINK_PORT_FLAVOUR_PHYSICAL ,
532
556
bp -> pf .port_id , false, 0 ,
533
557
bp -> switch_id , sizeof (bp -> switch_id ));
534
558
rc = devlink_port_register (dl , & bp -> dl_port , bp -> pf .port_id );
535
559
if (rc ) {
536
560
netdev_err (bp -> dev , "devlink_port_register failed" );
537
- goto err_dl_param_unreg ;
561
+ goto err_dl_unreg ;
538
562
}
539
563
devlink_port_type_eth_set (& bp -> dl_port , bp -> dev );
540
564
541
- rc = devlink_port_params_register (& bp -> dl_port , bnxt_dl_port_params ,
542
- ARRAY_SIZE (bnxt_dl_port_params ));
543
- if (rc ) {
544
- netdev_err (bp -> dev , "devlink_port_params_register failed" );
565
+ rc = bnxt_dl_params_register (bp );
566
+ if (rc )
545
567
goto err_dl_port_unreg ;
546
- }
547
-
548
- devlink_params_publish (dl );
549
568
550
569
return 0 ;
551
570
552
571
err_dl_port_unreg :
553
572
devlink_port_unregister (& bp -> dl_port );
554
- err_dl_param_unreg :
555
- devlink_params_unregister (dl , bnxt_dl_params ,
556
- ARRAY_SIZE (bnxt_dl_params ));
557
573
err_dl_unreg :
558
574
devlink_unregister (dl );
559
575
err_dl_free :
@@ -570,12 +586,8 @@ void bnxt_dl_unregister(struct bnxt *bp)
570
586
return ;
571
587
572
588
if (BNXT_PF (bp )) {
573
- devlink_port_params_unregister (& bp -> dl_port ,
574
- bnxt_dl_port_params ,
575
- ARRAY_SIZE (bnxt_dl_port_params ));
589
+ bnxt_dl_params_unregister (bp );
576
590
devlink_port_unregister (& bp -> dl_port );
577
- devlink_params_unregister (dl , bnxt_dl_params ,
578
- ARRAY_SIZE (bnxt_dl_params ));
579
591
}
580
592
devlink_unregister (dl );
581
593
devlink_free (dl );
0 commit comments