[dpdk-dev] nfp doing its own pci_read_config
Stephen Hemminger
stephen at networkplumber.org
Mon Apr 30 17:19:42 CEST 2018
Why is Netronome driver using its own version of existing rte_pci_read_config?
And hard coding magic numbers for offsets.
This shows up as Coverity error
________________________________________________________________________________________________________
*** CID 277243: Error handling issues (CHECKED_RETURN)
/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c: 684 in nfp6000_set_interface()
678 desc->busdev);
679
680 fp = open(tmp_str, O_RDONLY);
681 if (!fp)
682 return -1;
683
>>> CID 277243: Error handling issues (CHECKED_RETURN)
>>> Calling "lseek(fp, 340L, 0)" without checking return value. This library function may fail and return an error code.
684 lseek(fp, 0x154, SEEK_SET);
685
686 if (read(fp, &tmp, sizeof(tmp)) != sizeof(tmp)) {
687 printf("error reading config file for interface\n");
688 return -1;
689
static int
nfp6000_set_model(struct nfp_pcie_user *desc, struct nfp_cpp *cpp)
{
char tmp_str[80];
uint32_t tmp;
int fp;
snprintf(tmp_str, sizeof(tmp_str), "%s/%s/config", PCI_DEVICES,
desc->busdev);
fp = open(tmp_str, O_RDONLY);
if (!fp)
return -1;
lseek(fp, 0x2e, SEEK_SET);
if (read(fp, &tmp, sizeof(tmp)) != sizeof(tmp)) {
printf("Error reading config file for model\n");
return -1;
}
tmp = tmp << 16;
More information about the dev
mailing list