@@ -90,6 +90,26 @@ int rvu_get_nixlf_count(struct rvu *rvu)
90
90
return block -> lf .max ;
91
91
}
92
92
93
+ int nix_get_nixlf (struct rvu * rvu , u16 pcifunc , int * nixlf , int * nix_blkaddr )
94
+ {
95
+ struct rvu_pfvf * pfvf = rvu_get_pfvf (rvu , pcifunc );
96
+ struct rvu_hwinfo * hw = rvu -> hw ;
97
+ int blkaddr ;
98
+
99
+ blkaddr = rvu_get_blkaddr (rvu , BLKTYPE_NIX , pcifunc );
100
+ if (!pfvf -> nixlf || blkaddr < 0 )
101
+ return NIX_AF_ERR_AF_LF_INVALID ;
102
+
103
+ * nixlf = rvu_get_lf (rvu , & hw -> block [blkaddr ], pcifunc , 0 );
104
+ if (* nixlf < 0 )
105
+ return NIX_AF_ERR_AF_LF_INVALID ;
106
+
107
+ if (nix_blkaddr )
108
+ * nix_blkaddr = blkaddr ;
109
+
110
+ return 0 ;
111
+ }
112
+
93
113
static void nix_mce_list_init (struct nix_mce_list * list , int max )
94
114
{
95
115
INIT_HLIST_HEAD (& list -> head );
@@ -1667,13 +1687,9 @@ int rvu_mbox_handler_nix_txschq_cfg(struct rvu *rvu,
1667
1687
req -> num_regs > MAX_REGS_PER_MBOX_MSG )
1668
1688
return NIX_AF_INVAL_TXSCHQ_CFG ;
1669
1689
1670
- err = nix_get_nixlf (rvu , pcifunc , & nixlf );
1690
+ err = nix_get_nixlf (rvu , pcifunc , & nixlf , & blkaddr );
1671
1691
if (err )
1672
- return NIX_AF_ERR_AF_LF_INVALID ;
1673
-
1674
- blkaddr = rvu_get_blkaddr (rvu , BLKTYPE_NIX , pcifunc );
1675
- if (blkaddr < 0 )
1676
- return NIX_AF_ERR_AF_LF_INVALID ;
1692
+ return err ;
1677
1693
1678
1694
nix_hw = get_nix_hw (rvu -> hw , blkaddr );
1679
1695
if (!nix_hw )
@@ -1767,17 +1783,12 @@ int rvu_mbox_handler_nix_vtag_cfg(struct rvu *rvu,
1767
1783
struct nix_vtag_config * req ,
1768
1784
struct msg_rsp * rsp )
1769
1785
{
1770
- struct rvu_hwinfo * hw = rvu -> hw ;
1771
1786
u16 pcifunc = req -> hdr .pcifunc ;
1772
1787
int blkaddr , nixlf , err ;
1773
1788
1774
- blkaddr = rvu_get_blkaddr (rvu , BLKTYPE_NIX , pcifunc );
1775
- if (blkaddr < 0 )
1776
- return NIX_AF_ERR_AF_LF_INVALID ;
1777
-
1778
- nixlf = rvu_get_lf (rvu , & hw -> block [blkaddr ], pcifunc , 0 );
1779
- if (nixlf < 0 )
1780
- return NIX_AF_ERR_AF_LF_INVALID ;
1789
+ err = nix_get_nixlf (rvu , pcifunc , & nixlf , & blkaddr );
1790
+ if (err )
1791
+ return err ;
1781
1792
1782
1793
if (req -> cfg_type ) {
1783
1794
err = nix_rx_vtag_cfg (rvu , nixlf , blkaddr , req );
@@ -2119,18 +2130,13 @@ static int nix_af_mark_format_setup(struct rvu *rvu, struct nix_hw *nix_hw,
2119
2130
int rvu_mbox_handler_nix_stats_rst (struct rvu * rvu , struct msg_req * req ,
2120
2131
struct msg_rsp * rsp )
2121
2132
{
2122
- struct rvu_hwinfo * hw = rvu -> hw ;
2123
2133
u16 pcifunc = req -> hdr .pcifunc ;
2124
- int i , nixlf , blkaddr ;
2134
+ int i , nixlf , blkaddr , err ;
2125
2135
u64 stats ;
2126
2136
2127
- blkaddr = rvu_get_blkaddr (rvu , BLKTYPE_NIX , pcifunc );
2128
- if (blkaddr < 0 )
2129
- return NIX_AF_ERR_AF_LF_INVALID ;
2130
-
2131
- nixlf = rvu_get_lf (rvu , & hw -> block [blkaddr ], pcifunc , 0 );
2132
- if (nixlf < 0 )
2133
- return NIX_AF_ERR_AF_LF_INVALID ;
2137
+ err = nix_get_nixlf (rvu , pcifunc , & nixlf , & blkaddr );
2138
+ if (err )
2139
+ return err ;
2134
2140
2135
2141
/* Get stats count supported by HW */
2136
2142
stats = rvu_read64 (rvu , blkaddr , NIX_AF_CONST1 );
@@ -2418,18 +2424,14 @@ int rvu_mbox_handler_nix_rss_flowkey_cfg(struct rvu *rvu,
2418
2424
struct nix_rss_flowkey_cfg * req ,
2419
2425
struct nix_rss_flowkey_cfg_rsp * rsp )
2420
2426
{
2421
- struct rvu_hwinfo * hw = rvu -> hw ;
2422
2427
u16 pcifunc = req -> hdr .pcifunc ;
2423
2428
int alg_idx , nixlf , blkaddr ;
2424
2429
struct nix_hw * nix_hw ;
2430
+ int err ;
2425
2431
2426
- blkaddr = rvu_get_blkaddr (rvu , BLKTYPE_NIX , pcifunc );
2427
- if (blkaddr < 0 )
2428
- return NIX_AF_ERR_AF_LF_INVALID ;
2429
-
2430
- nixlf = rvu_get_lf (rvu , & hw -> block [blkaddr ], pcifunc , 0 );
2431
- if (nixlf < 0 )
2432
- return NIX_AF_ERR_AF_LF_INVALID ;
2432
+ err = nix_get_nixlf (rvu , pcifunc , & nixlf , & blkaddr );
2433
+ if (err )
2434
+ return err ;
2433
2435
2434
2436
nix_hw = get_nix_hw (rvu -> hw , blkaddr );
2435
2437
if (!nix_hw )
@@ -2522,19 +2524,15 @@ int rvu_mbox_handler_nix_set_mac_addr(struct rvu *rvu,
2522
2524
struct nix_set_mac_addr * req ,
2523
2525
struct msg_rsp * rsp )
2524
2526
{
2525
- struct rvu_hwinfo * hw = rvu -> hw ;
2526
2527
u16 pcifunc = req -> hdr .pcifunc ;
2528
+ int blkaddr , nixlf , err ;
2527
2529
struct rvu_pfvf * pfvf ;
2528
- int blkaddr , nixlf ;
2529
2530
2530
- pfvf = rvu_get_pfvf (rvu , pcifunc );
2531
- blkaddr = rvu_get_blkaddr (rvu , BLKTYPE_NIX , pcifunc );
2532
- if (!pfvf -> nixlf || blkaddr < 0 )
2533
- return NIX_AF_ERR_AF_LF_INVALID ;
2531
+ err = nix_get_nixlf (rvu , pcifunc , & nixlf , & blkaddr );
2532
+ if (err )
2533
+ return err ;
2534
2534
2535
- nixlf = rvu_get_lf (rvu , & hw -> block [blkaddr ], pcifunc , 0 );
2536
- if (nixlf < 0 )
2537
- return NIX_AF_ERR_AF_LF_INVALID ;
2535
+ pfvf = rvu_get_pfvf (rvu , pcifunc );
2538
2536
2539
2537
ether_addr_copy (pfvf -> mac_addr , req -> mac_addr );
2540
2538
@@ -2567,19 +2565,15 @@ int rvu_mbox_handler_nix_set_rx_mode(struct rvu *rvu, struct nix_rx_mode *req,
2567
2565
struct msg_rsp * rsp )
2568
2566
{
2569
2567
bool allmulti = false, disable_promisc = false;
2570
- struct rvu_hwinfo * hw = rvu -> hw ;
2571
2568
u16 pcifunc = req -> hdr .pcifunc ;
2569
+ int blkaddr , nixlf , err ;
2572
2570
struct rvu_pfvf * pfvf ;
2573
- int blkaddr , nixlf ;
2574
2571
2575
- pfvf = rvu_get_pfvf (rvu , pcifunc );
2576
- blkaddr = rvu_get_blkaddr (rvu , BLKTYPE_NIX , pcifunc );
2577
- if (!pfvf -> nixlf || blkaddr < 0 )
2578
- return NIX_AF_ERR_AF_LF_INVALID ;
2572
+ err = nix_get_nixlf (rvu , pcifunc , & nixlf , & blkaddr );
2573
+ if (err )
2574
+ return err ;
2579
2575
2580
- nixlf = rvu_get_lf (rvu , & hw -> block [blkaddr ], pcifunc , 0 );
2581
- if (nixlf < 0 )
2582
- return NIX_AF_ERR_AF_LF_INVALID ;
2576
+ pfvf = rvu_get_pfvf (rvu , pcifunc );
2583
2577
2584
2578
if (req -> mode & NIX_RX_MODE_PROMISC )
2585
2579
allmulti = false;
@@ -2794,22 +2788,12 @@ int rvu_mbox_handler_nix_rxvlan_alloc(struct rvu *rvu, struct msg_req *req,
2794
2788
int rvu_mbox_handler_nix_set_rx_cfg (struct rvu * rvu , struct nix_rx_cfg * req ,
2795
2789
struct msg_rsp * rsp )
2796
2790
{
2797
- struct rvu_hwinfo * hw = rvu -> hw ;
2798
- u16 pcifunc = req -> hdr .pcifunc ;
2799
- struct rvu_block * block ;
2800
- struct rvu_pfvf * pfvf ;
2801
- int nixlf , blkaddr ;
2791
+ int nixlf , blkaddr , err ;
2802
2792
u64 cfg ;
2803
2793
2804
- pfvf = rvu_get_pfvf (rvu , pcifunc );
2805
- blkaddr = rvu_get_blkaddr (rvu , BLKTYPE_NIX , pcifunc );
2806
- if (!pfvf -> nixlf || blkaddr < 0 )
2807
- return NIX_AF_ERR_AF_LF_INVALID ;
2808
-
2809
- block = & hw -> block [blkaddr ];
2810
- nixlf = rvu_get_lf (rvu , block , pcifunc , 0 );
2811
- if (nixlf < 0 )
2812
- return NIX_AF_ERR_AF_LF_INVALID ;
2794
+ err = nix_get_nixlf (rvu , req -> hdr .pcifunc , & nixlf , & blkaddr );
2795
+ if (err )
2796
+ return err ;
2813
2797
2814
2798
cfg = rvu_read64 (rvu , blkaddr , NIX_AF_LFX_RX_CFG (nixlf ));
2815
2799
/* Set the interface configuration */
@@ -3114,30 +3098,13 @@ void rvu_nix_freemem(struct rvu *rvu)
3114
3098
}
3115
3099
}
3116
3100
3117
- int nix_get_nixlf (struct rvu * rvu , u16 pcifunc , int * nixlf )
3118
- {
3119
- struct rvu_pfvf * pfvf = rvu_get_pfvf (rvu , pcifunc );
3120
- struct rvu_hwinfo * hw = rvu -> hw ;
3121
- int blkaddr ;
3122
-
3123
- blkaddr = rvu_get_blkaddr (rvu , BLKTYPE_NIX , pcifunc );
3124
- if (!pfvf -> nixlf || blkaddr < 0 )
3125
- return NIX_AF_ERR_AF_LF_INVALID ;
3126
-
3127
- * nixlf = rvu_get_lf (rvu , & hw -> block [blkaddr ], pcifunc , 0 );
3128
- if (* nixlf < 0 )
3129
- return NIX_AF_ERR_AF_LF_INVALID ;
3130
-
3131
- return 0 ;
3132
- }
3133
-
3134
3101
int rvu_mbox_handler_nix_lf_start_rx (struct rvu * rvu , struct msg_req * req ,
3135
3102
struct msg_rsp * rsp )
3136
3103
{
3137
3104
u16 pcifunc = req -> hdr .pcifunc ;
3138
3105
int nixlf , err ;
3139
3106
3140
- err = nix_get_nixlf (rvu , pcifunc , & nixlf );
3107
+ err = nix_get_nixlf (rvu , pcifunc , & nixlf , NULL );
3141
3108
if (err )
3142
3109
return err ;
3143
3110
@@ -3152,7 +3119,7 @@ int rvu_mbox_handler_nix_lf_stop_rx(struct rvu *rvu, struct msg_req *req,
3152
3119
u16 pcifunc = req -> hdr .pcifunc ;
3153
3120
int nixlf , err ;
3154
3121
3155
- err = nix_get_nixlf (rvu , pcifunc , & nixlf );
3122
+ err = nix_get_nixlf (rvu , pcifunc , & nixlf , NULL );
3156
3123
if (err )
3157
3124
return err ;
3158
3125
0 commit comments