From: Damjan Marion Date: Sun, 4 Mar 2018 15:44:26 +0000 (+0100) Subject: vlib: fix vlib_pci_get_device_info on when not running as root X-Git-Tag: v18.04-rc1~214 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F46%2F10946%2F2;p=vpp.git vlib: fix vlib_pci_get_device_info on when not running as root While comment properly says that only first 64 bytes can be read, actual code was returning error instead being happy with 64 bytes received. Change-Id: I09c0d1d5c9fc8e1f6c59c093d81bb1ce1924281b Signed-off-by: Damjan Marion --- diff --git a/src/vlib/linux/pci.c b/src/vlib/linux/pci.c index 8954bccd93f..e67e651d9a8 100644 --- a/src/vlib/linux/pci.c +++ b/src/vlib/linux/pci.c @@ -182,10 +182,8 @@ vlib_pci_get_device_info (vlib_pci_addr_t * addr, clib_error_t ** error) /* You can only read more that 64 bytes of config space as root; so we try to read the full space but fall back to just the first 64 bytes. */ - if (read (fd, &di->config_data, sizeof (di->config_data)) != - sizeof (di->config_data) - && read (fd, &di->config0, - sizeof (di->config0)) != sizeof (di->config0)) + if (read (fd, &di->config_data, sizeof (di->config_data)) < + sizeof (di->config0)) { err = clib_error_return_unix (0, "read `%s'", f); close (fd);