提交 5de9b502 编写于 作者: J Ján Tomko

Only detect PCI Express devices as root in udev nodedev driver

This stops the error message spam when running unprivileged
libvirtd:
2014-06-30 12:38:47.990+0000: 631: error : virPCIDeviceConfigOpen:300 :
Failed to open config space file
'/sys/bus/pci/devices/0000:00:00.0/config': Permission denied

Reported by Daniel Berrange:
https://www.redhat.com/archives/libvir-list/2014-June/msg01082.html
上级 1229ef49
......@@ -429,6 +429,7 @@ static int udevProcessPCI(struct udev_device *device,
virPCIDeviceAddress addr;
virPCIEDeviceInfoPtr pci_express = NULL;
virPCIDevicePtr pciDev = NULL;
udevPrivate *priv = driverState->privateData;
int tmpGroup, ret = -1;
char *p;
int rc;
......@@ -544,7 +545,8 @@ static int udevProcessPCI(struct udev_device *device,
data->pci_dev.function)))
goto out;
if (virPCIDeviceIsPCIExpress(pciDev) > 0) {
/* We need to be root to read PCI device configs */
if (priv->privileged && virPCIDeviceIsPCIExpress(pciDev) > 0) {
if (VIR_ALLOC(pci_express) < 0)
goto out;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册