summaryrefslogtreecommitdiffstats
path: root/src/vlib/linux
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2023-10-12 17:41:14 +0000
committerAndrew Yourtchenko <ayourtch@gmail.com>2023-10-13 10:39:10 +0000
commitc9275dadefe42418da3c15726f2a80a550b50156 (patch)
treefa05cda4eb1632aefd18a7bb621fc59d7ee3e4fd /src/vlib/linux
parentbdeee2194b09c85ec1087550177555a24cc5d875 (diff)
vlib: allow unpriviledged vlib_pci_get_device_info()
When running unpriviledged sysfs allows reading only first 64 bytes of PCI config space. Change-Id: I62d18328925a2e4936406c2842154b20182cacb9 Type: improvement Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/vlib/linux')
-rw-r--r--src/vlib/linux/pci.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vlib/linux/pci.c b/src/vlib/linux/pci.c
index 9661827ea0d..1a70c568176 100644
--- a/src/vlib/linux/pci.c
+++ b/src/vlib/linux/pci.c
@@ -238,7 +238,8 @@ vlib_pci_get_device_info (vlib_main_t * vm, vlib_pci_addr_t * addr,
/* 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, sizeof (di->config)) < sizeof (di->config))
+ if (read (fd, &di->config, sizeof (di->config)) <
+ sizeof (vlib_pci_config_hdr_t))
{
err = clib_error_return_unix (0, "read `%s'", f);
close (fd);