]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
octeontx2-af: Fix uninitialized variables in rvu_switch
authorSubbaraya Sundeep <sbhatta@marvell.com>
Fri, 23 Jul 2021 08:06:18 +0000 (13:36 +0530)
committerDavid S. Miller <davem@davemloft.net>
Fri, 23 Jul 2021 16:43:31 +0000 (17:43 +0100)
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: 23109f8dd06d ("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>
drivers/net/ethernet/marvell/octeontx2/af/rvu.c
drivers/net/ethernet/marvell/octeontx2/af/rvu_switch.c

index 017163fb3cd5cc1ecec979584830fd77f462a4c0..5fe277e354f7ab288f49506307adc3f0a49dbaed 100644 (file)
@@ -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)
index 2e5379710aa5a881f6603e637f9bae9e2b12c6f4..820adf390b8e8f65c33e9cc897c1b77ed0a53b38 100644 (file)
@@ -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)