Commit 9986066d authored by Subbaraya Sundeep's avatar Subbaraya Sundeep Committed by David S. Miller

octeontx2-af: Fix uninitialized variables in rvu_switch

Get the number of VFs of a PF correctly by calling
rvu_get_pf_numvfs in rvu_switch_disable function.
Also hwvf is not required hence remove it.

Fixes: 23109f8d ("octeontx2-af: Introduce internal packet switching")
Reported-by: default avatarkernel test robot <lkp@intel.com>
Reported-by: default avatarColin Ian King <colin.king@canonical.com>
Signed-off-by: default avatarSubbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: default avatarSunil Goutham <sgoutham@marvell.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 68d1f1d4
...@@ -391,8 +391,10 @@ void rvu_get_pf_numvfs(struct rvu *rvu, int pf, int *numvfs, int *hwvf) ...@@ -391,8 +391,10 @@ void rvu_get_pf_numvfs(struct rvu *rvu, int pf, int *numvfs, int *hwvf)
/* Get numVFs attached to this PF and first HWVF */ /* Get numVFs attached to this PF and first HWVF */
cfg = rvu_read64(rvu, BLKADDR_RVUM, RVU_PRIV_PFX_CFG(pf)); cfg = rvu_read64(rvu, BLKADDR_RVUM, RVU_PRIV_PFX_CFG(pf));
*numvfs = (cfg >> 12) & 0xFF; if (numvfs)
*hwvf = cfg & 0xFFF; *numvfs = (cfg >> 12) & 0xFF;
if (hwvf)
*hwvf = cfg & 0xFFF;
} }
static int rvu_get_hwvf(struct rvu *rvu, int pcifunc) static int rvu_get_hwvf(struct rvu *rvu, int pcifunc)
......
...@@ -71,8 +71,8 @@ static int rvu_switch_install_rules(struct rvu *rvu) ...@@ -71,8 +71,8 @@ static int rvu_switch_install_rules(struct rvu *rvu)
struct rvu_switch *rswitch = &rvu->rswitch; struct rvu_switch *rswitch = &rvu->rswitch;
u16 start = rswitch->start_entry; u16 start = rswitch->start_entry;
struct rvu_hwinfo *hw = rvu->hw; struct rvu_hwinfo *hw = rvu->hw;
int pf, vf, numvfs, hwvf;
u16 pcifunc, entry = 0; u16 pcifunc, entry = 0;
int pf, vf, numvfs;
int err; int err;
for (pf = 1; pf < hw->total_pfs; pf++) { for (pf = 1; pf < hw->total_pfs; pf++) {
...@@ -110,8 +110,8 @@ static int rvu_switch_install_rules(struct rvu *rvu) ...@@ -110,8 +110,8 @@ static int rvu_switch_install_rules(struct rvu *rvu)
rswitch->entry2pcifunc[entry++] = pcifunc; rswitch->entry2pcifunc[entry++] = pcifunc;
rvu_get_pf_numvfs(rvu, pf, &numvfs, &hwvf); rvu_get_pf_numvfs(rvu, pf, &numvfs, NULL);
for (vf = 0; vf < numvfs; vf++, hwvf++) { for (vf = 0; vf < numvfs; vf++) {
pcifunc = pf << 10 | ((vf + 1) & 0x3FF); pcifunc = pf << 10 | ((vf + 1) & 0x3FF);
rvu_get_nix_blkaddr(rvu, pcifunc); rvu_get_nix_blkaddr(rvu, pcifunc);
...@@ -198,7 +198,7 @@ void rvu_switch_disable(struct rvu *rvu) ...@@ -198,7 +198,7 @@ void rvu_switch_disable(struct rvu *rvu)
struct npc_mcam_free_entry_req free_req = { 0 }; struct npc_mcam_free_entry_req free_req = { 0 };
struct rvu_switch *rswitch = &rvu->rswitch; struct rvu_switch *rswitch = &rvu->rswitch;
struct rvu_hwinfo *hw = rvu->hw; struct rvu_hwinfo *hw = rvu->hw;
int pf, vf, numvfs, hwvf; int pf, vf, numvfs;
struct msg_rsp rsp; struct msg_rsp rsp;
u16 pcifunc; u16 pcifunc;
int err; int err;
...@@ -217,7 +217,8 @@ void rvu_switch_disable(struct rvu *rvu) ...@@ -217,7 +217,8 @@ void rvu_switch_disable(struct rvu *rvu)
"Reverting RX rule for PF%d failed(%d)\n", "Reverting RX rule for PF%d failed(%d)\n",
pf, err); pf, err);
for (vf = 0; vf < numvfs; vf++, hwvf++) { rvu_get_pf_numvfs(rvu, pf, &numvfs, NULL);
for (vf = 0; vf < numvfs; vf++) {
pcifunc = pf << 10 | ((vf + 1) & 0x3FF); pcifunc = pf << 10 | ((vf + 1) & 0x3FF);
err = rvu_switch_install_rx_rule(rvu, pcifunc, 0xFFF); err = rvu_switch_install_rx_rule(rvu, pcifunc, 0xFFF);
if (err) if (err)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment