Skip to content

Commit 52ccbda

Browse files
sgoutham-marvelldavem330
authored andcommitted
octeontx2-af: Cleanup nixlf and blkaddr retrieval logic
Cleanedup repititive nixlf and blkaddr retrieving logic is various mailbox handlers throughout the rvu_nix.c file. Signed-off-by: Sunil Goutham <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 6fd2a71 commit 52ccbda

File tree

2 files changed

+50
-83
lines changed

2 files changed

+50
-83
lines changed

drivers/net/ethernet/marvell/octeontx2/af/rvu.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ int rvu_nix_reserve_mark_format(struct rvu *rvu, struct nix_hw *nix_hw,
432432
void rvu_nix_freemem(struct rvu *rvu);
433433
int rvu_get_nixlf_count(struct rvu *rvu);
434434
void rvu_nix_lf_teardown(struct rvu *rvu, u16 pcifunc, int blkaddr, int npalf);
435-
int nix_get_nixlf(struct rvu *rvu, u16 pcifunc, int *nixlf);
435+
int nix_get_nixlf(struct rvu *rvu, u16 pcifunc, int *nixlf, int *nix_blkaddr);
436436

437437
/* NPC APIs */
438438
int rvu_npc_init(struct rvu *rvu);

drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c

Lines changed: 49 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,26 @@ int rvu_get_nixlf_count(struct rvu *rvu)
9090
return block->lf.max;
9191
}
9292

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+
93113
static void nix_mce_list_init(struct nix_mce_list *list, int max)
94114
{
95115
INIT_HLIST_HEAD(&list->head);
@@ -1667,13 +1687,9 @@ int rvu_mbox_handler_nix_txschq_cfg(struct rvu *rvu,
16671687
req->num_regs > MAX_REGS_PER_MBOX_MSG)
16681688
return NIX_AF_INVAL_TXSCHQ_CFG;
16691689

1670-
err = nix_get_nixlf(rvu, pcifunc, &nixlf);
1690+
err = nix_get_nixlf(rvu, pcifunc, &nixlf, &blkaddr);
16711691
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;
16771693

16781694
nix_hw = get_nix_hw(rvu->hw, blkaddr);
16791695
if (!nix_hw)
@@ -1767,17 +1783,12 @@ int rvu_mbox_handler_nix_vtag_cfg(struct rvu *rvu,
17671783
struct nix_vtag_config *req,
17681784
struct msg_rsp *rsp)
17691785
{
1770-
struct rvu_hwinfo *hw = rvu->hw;
17711786
u16 pcifunc = req->hdr.pcifunc;
17721787
int blkaddr, nixlf, err;
17731788

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;
17811792

17821793
if (req->cfg_type) {
17831794
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,
21192130
int rvu_mbox_handler_nix_stats_rst(struct rvu *rvu, struct msg_req *req,
21202131
struct msg_rsp *rsp)
21212132
{
2122-
struct rvu_hwinfo *hw = rvu->hw;
21232133
u16 pcifunc = req->hdr.pcifunc;
2124-
int i, nixlf, blkaddr;
2134+
int i, nixlf, blkaddr, err;
21252135
u64 stats;
21262136

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;
21342140

21352141
/* Get stats count supported by HW */
21362142
stats = rvu_read64(rvu, blkaddr, NIX_AF_CONST1);
@@ -2418,18 +2424,14 @@ int rvu_mbox_handler_nix_rss_flowkey_cfg(struct rvu *rvu,
24182424
struct nix_rss_flowkey_cfg *req,
24192425
struct nix_rss_flowkey_cfg_rsp *rsp)
24202426
{
2421-
struct rvu_hwinfo *hw = rvu->hw;
24222427
u16 pcifunc = req->hdr.pcifunc;
24232428
int alg_idx, nixlf, blkaddr;
24242429
struct nix_hw *nix_hw;
2430+
int err;
24252431

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;
24332435

24342436
nix_hw = get_nix_hw(rvu->hw, blkaddr);
24352437
if (!nix_hw)
@@ -2522,19 +2524,15 @@ int rvu_mbox_handler_nix_set_mac_addr(struct rvu *rvu,
25222524
struct nix_set_mac_addr *req,
25232525
struct msg_rsp *rsp)
25242526
{
2525-
struct rvu_hwinfo *hw = rvu->hw;
25262527
u16 pcifunc = req->hdr.pcifunc;
2528+
int blkaddr, nixlf, err;
25272529
struct rvu_pfvf *pfvf;
2528-
int blkaddr, nixlf;
25292530

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;
25342534

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);
25382536

25392537
ether_addr_copy(pfvf->mac_addr, req->mac_addr);
25402538

@@ -2567,19 +2565,15 @@ int rvu_mbox_handler_nix_set_rx_mode(struct rvu *rvu, struct nix_rx_mode *req,
25672565
struct msg_rsp *rsp)
25682566
{
25692567
bool allmulti = false, disable_promisc = false;
2570-
struct rvu_hwinfo *hw = rvu->hw;
25712568
u16 pcifunc = req->hdr.pcifunc;
2569+
int blkaddr, nixlf, err;
25722570
struct rvu_pfvf *pfvf;
2573-
int blkaddr, nixlf;
25742571

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;
25792575

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);
25832577

25842578
if (req->mode & NIX_RX_MODE_PROMISC)
25852579
allmulti = false;
@@ -2794,22 +2788,12 @@ int rvu_mbox_handler_nix_rxvlan_alloc(struct rvu *rvu, struct msg_req *req,
27942788
int rvu_mbox_handler_nix_set_rx_cfg(struct rvu *rvu, struct nix_rx_cfg *req,
27952789
struct msg_rsp *rsp)
27962790
{
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;
28022792
u64 cfg;
28032793

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;
28132797

28142798
cfg = rvu_read64(rvu, blkaddr, NIX_AF_LFX_RX_CFG(nixlf));
28152799
/* Set the interface configuration */
@@ -3114,30 +3098,13 @@ void rvu_nix_freemem(struct rvu *rvu)
31143098
}
31153099
}
31163100

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-
31343101
int rvu_mbox_handler_nix_lf_start_rx(struct rvu *rvu, struct msg_req *req,
31353102
struct msg_rsp *rsp)
31363103
{
31373104
u16 pcifunc = req->hdr.pcifunc;
31383105
int nixlf, err;
31393106

3140-
err = nix_get_nixlf(rvu, pcifunc, &nixlf);
3107+
err = nix_get_nixlf(rvu, pcifunc, &nixlf, NULL);
31413108
if (err)
31423109
return err;
31433110

@@ -3152,7 +3119,7 @@ int rvu_mbox_handler_nix_lf_stop_rx(struct rvu *rvu, struct msg_req *req,
31523119
u16 pcifunc = req->hdr.pcifunc;
31533120
int nixlf, err;
31543121

3155-
err = nix_get_nixlf(rvu, pcifunc, &nixlf);
3122+
err = nix_get_nixlf(rvu, pcifunc, &nixlf, NULL);
31563123
if (err)
31573124
return err;
31583125

0 commit comments

Comments
 (0)