[libvirt] [PATCH] Don't treat pci_system_init failure as fatal if no PCI bus is present

Eric Blake eblake at redhat.com
Thu Sep 8 10:46:59 UTC 2011


On 09/06/2011 06:55 AM, Daniel Veillard wrote:
> On Mon, Sep 05, 2011 at 09:29:06PM +0200, Soren Hansen wrote:
>> Xen PV domU's have no PCI bus. node_device_udev.c calls pci_system_init
>> which looks for /sys/bus/pci. If it does not find /sys/bus/pci (which it
>> won't in a Xen PV domU) it returns unsuccesfully (ENOENT), which libvirt
>> considers fatal. This makes libvirt unusable in this environment, even
>> though there are plenty of valid virtualisation options that work
>> there (LXC, UML, and QEmu spring to mind)
>>
>> https://bugzilla.redhat.com/show_bug.cgi?id=709471
>>
>> Signed-off-by: Soren Hansen<soren at linux2go.dk>
>> ---
>>   src/node_device/node_device_udev.c |    2 +-
>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
>> index badf241..08ef856 100644
>> --- a/src/node_device/node_device_udev.c
>> +++ b/src/node_device/node_device_udev.c
>> @@ -1620,7 +1620,7 @@ static int udevDeviceMonitorStartup(int privileged)
>>           /* Ignore failure as non-root; udev is not as helpful in that
>>            * situation, but a non-privileged user won't benefit much
>>            * from udev in the first place.  */
>> -        if (privileged || errno != EACCES) {
>> +        if (errno != ENOENT&&  (privileged  || errno != EACCES)) {
>>               char ebuf[256];
>>               VIR_ERROR(_("Failed to initialize libpciaccess: %s"),
>>                         virStrerror(pciret, ebuf, sizeof ebuf));
>
>    ACK,

Pushed.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list