[libvirt] [PATCH] udev: Parse PCI devices even if libpciaccess fails
Cole Robinson
crobinso at redhat.com
Thu Jul 1 14:35:19 UTC 2010
On 06/30/2010 05:02 PM, Dave Allan wrote:
> On Wed, Jun 30, 2010 at 04:38:37PM -0400, Cole Robinson wrote:
>> We only use libpciaccess for resolving device product/vendor. If
>> initializing the library fails (say if using qemu:///session), don't
>> warn so loudly, and carry on as usual.
>>
>> Signed-off-by: Cole Robinson <crobinso at redhat.com>
>> ---
>> src/node_device/node_device_udev.c | 9 ++++++---
>> 1 files changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
>> index 73217c5..f872483 100644
>> --- a/src/node_device/node_device_udev.c
>> +++ b/src/node_device/node_device_udev.c
>> @@ -363,12 +363,15 @@ static int udevTranslatePCIIds(unsigned int vendor,
>> char **vendor_string,
>> char **product_string)
>> {
>> - int ret = -1;
>> + int ret = -1, pciret;
>> struct pci_id_match m;
>> const char *vendor_name = NULL, *device_name = NULL;
>>
>> - if (pci_system_init() != 0) {
>> - VIR_ERROR0(_("Failed to initialize libpciaccess"));
>> + if ((pciret = pci_system_init()) != 0) {
>> + char ebuf[1024];
>> + VIR_INFO("Failed to initialize libpciaccess: %s",
>> + virStrerror(pciret, ebuf, sizeof ebuf));
>> + ret = 0;
>> goto out;
>> }
>>
>> --
>> 1.6.6.1
>
> 1024 seems like a big buffer to allocate on the stack, and I'd be
> surprised if an error message was more than 256 bytes. Does it really
> need to be that large?
>
Not sure if it's strictly required, I just followed one of the examples
in qemu_driver.c. I'll change it to 256 when I commit
> ACK, other than that.
>
> Dave
More information about the libvir-list
mailing list