Call to CPP read (nfp_cpp_readl()) can fail, return 0 on fail.
If the call to _nfp6000_cppat_mu_locality fails, the function needs
to return with an error.
If the nfp_cpp_readl() call fails just returns 0.
Coverity issue: 277209, 277215, 277225
Fixes:
c7e9729da6b5 ("net/nfp: support CPP")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
isld[1] = isld1;
locality_lsb = _nfp6000_cppat_mu_locality_lsb(mode, addr40);
isld[1] = isld1;
locality_lsb = _nfp6000_cppat_mu_locality_lsb(mode, addr40);
+ if (locality_lsb < 0)
+ return NFP_ERRNO(EINVAL);
+
if (((*addr >> locality_lsb) & 3) == _NIC_NFP6000_MU_LOCALITY_DIRECT)
da = 1;
else
if (((*addr >> locality_lsb) & 3) == _NIC_NFP6000_MU_LOCALITY_DIRECT)
da = 1;
else
uint32_t arm_id = NFP_CPP_ID(NFP_CPP_TARGET_ARM, 0, 0);
uint32_t model = 0;
uint32_t arm_id = NFP_CPP_ID(NFP_CPP_TARGET_ARM, 0, 0);
uint32_t model = 0;
- nfp_cpp_readl(cpp, arm_id, NFP6000_ARM_GCSR_SOFTMODEL0, &model);
+ if (nfp_cpp_readl(cpp, arm_id, NFP6000_ARM_GCSR_SOFTMODEL0, &model))
+ return 0;
if (NFP_CPP_MODEL_IS_6000(model)) {
uint32_t tmp;
if (NFP_CPP_MODEL_IS_6000(model)) {
uint32_t tmp;
/* The PL's PluDeviceID revision code is authoratative */
model &= ~0xff;
/* The PL's PluDeviceID revision code is authoratative */
model &= ~0xff;
- nfp_xpb_readl(cpp, NFP_XPB_DEVICE(1, 1, 16) +
- NFP_PL_DEVICE_ID, &tmp);
+ if (nfp_xpb_readl(cpp, NFP_XPB_DEVICE(1, 1, 16) +
+ NFP_PL_DEVICE_ID, &tmp))
+ return 0;
+
model |= (NFP_PL_DEVICE_ID_MASK & tmp) - 0x10;
}
model |= (NFP_PL_DEVICE_ID_MASK & tmp) - 0x10;
}