mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-19 00:54:41 +08:00
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: 23109f8dd0
("octeontx2-af: Introduce internal packet switching")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
68d1f1d4af
commit
9986066d94
@ -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 */
|
||||
cfg = rvu_read64(rvu, BLKADDR_RVUM, RVU_PRIV_PFX_CFG(pf));
|
||||
*numvfs = (cfg >> 12) & 0xFF;
|
||||
*hwvf = cfg & 0xFFF;
|
||||
if (numvfs)
|
||||
*numvfs = (cfg >> 12) & 0xFF;
|
||||
if (hwvf)
|
||||
*hwvf = cfg & 0xFFF;
|
||||
}
|
||||
|
||||
static int rvu_get_hwvf(struct rvu *rvu, int pcifunc)
|
||||
|
@ -71,8 +71,8 @@ static int rvu_switch_install_rules(struct rvu *rvu)
|
||||
struct rvu_switch *rswitch = &rvu->rswitch;
|
||||
u16 start = rswitch->start_entry;
|
||||
struct rvu_hwinfo *hw = rvu->hw;
|
||||
int pf, vf, numvfs, hwvf;
|
||||
u16 pcifunc, entry = 0;
|
||||
int pf, vf, numvfs;
|
||||
int err;
|
||||
|
||||
for (pf = 1; pf < hw->total_pfs; pf++) {
|
||||
@ -110,8 +110,8 @@ static int rvu_switch_install_rules(struct rvu *rvu)
|
||||
|
||||
rswitch->entry2pcifunc[entry++] = pcifunc;
|
||||
|
||||
rvu_get_pf_numvfs(rvu, pf, &numvfs, &hwvf);
|
||||
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);
|
||||
rvu_get_nix_blkaddr(rvu, pcifunc);
|
||||
|
||||
@ -198,7 +198,7 @@ void rvu_switch_disable(struct rvu *rvu)
|
||||
struct npc_mcam_free_entry_req free_req = { 0 };
|
||||
struct rvu_switch *rswitch = &rvu->rswitch;
|
||||
struct rvu_hwinfo *hw = rvu->hw;
|
||||
int pf, vf, numvfs, hwvf;
|
||||
int pf, vf, numvfs;
|
||||
struct msg_rsp rsp;
|
||||
u16 pcifunc;
|
||||
int err;
|
||||
@ -217,7 +217,8 @@ void rvu_switch_disable(struct rvu *rvu)
|
||||
"Reverting RX rule for PF%d failed(%d)\n",
|
||||
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);
|
||||
err = rvu_switch_install_rx_rule(rvu, pcifunc, 0xFFF);
|
||||
if (err)
|
||||
|
Loading…
Reference in New Issue
Block a user