On Tue, Apr 2, 2019 at 8:51 PM Stephen Hemminger <step...@networkplumber.org> wrote:
> Using access followed by open causes a static analysis warning > about Time of check versus Time of use. Also, access() and > open() have different UID permission checks. > > This is not a serious problem; but easy to fix by using errno instead. > > Coverity issue: 300870 > Fixes: 4a928ef9f611 ("bus/pci: enable write combining during mapping") > Signed-off-by: Stephen Hemminger <step...@networkplumber.org> > --- > v2 - add more CC to original mail, and rebase > > drivers/bus/pci/linux/pci_uio.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/drivers/bus/pci/linux/pci_uio.c > b/drivers/bus/pci/linux/pci_uio.c > index 09ecbb7aad25..0d1b9aa347ba 100644 > --- a/drivers/bus/pci/linux/pci_uio.c > +++ b/drivers/bus/pci/linux/pci_uio.c > @@ -314,12 +314,11 @@ pci_uio_map_resource_by_index(struct rte_pci_device > *dev, int res_idx, > loc->domain, loc->bus, loc->devid, > loc->function, res_idx); > > - if (access(devname, R_OK|W_OK) != -1) { > - fd = open(devname, O_RDWR); > - if (fd < 0) > - RTE_LOG(INFO, EAL, "%s cannot be mapped. " > - "Fall-back to non prefetchable > mode.\n", > - devname); > + fd = open(devname, O_RDWR); > + if (fd < 0 && errno != ENOENT) { > + RTE_LOG(INFO, EAL, "%s cannot be mapped. " > + "Fall-back to non prefetchable mode.\n", > + devname); > } > } > > Reviewed-by: David Marchand <david.march...@redhat.com> -- David Marchand