- 03 5月, 2011 1 次提交
-
-
由 Michal Privoznik 提交于
The patch which moved libpciaccess initialization to one place caused regression - we were not able to run on system with no PCI bus, like s390(x).
-
- 07 4月, 2011 1 次提交
-
-
由 Serge Hallyn 提交于
We're seeing bugs apparently resulting from thread unsafety of libpciaccess, such as https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/726099 To prevent those, as suggested by danpb on irc, move the nodeDeviceLock(driverState) higher into the callers. In particular: udevDeviceMonitorStartup should hold the lock while calling udevEnumerateDevices(), and udevEventHandleCallback should hold it over its entire execution. It's not clear to me whether it is ok to hold the nodeDeviceLock while taking the virNodeDeviceObjLock(dev) on a device. If not, then the lock will need to be dropped around the calling of udevSetupSystemDev(), and udevAddOneDevice() may not actually be safe to call from higher layers with the driverstate lock held. libvirt 0.8.8 with this patch on it seems to work fine for me. Assuming it looks ok and I haven't done anything obviously dumb, I'll ask the bug submitters to try this patch. Signed-off-by: NSerge Hallyn <serge.hallyn@ubuntu.com>
-
- 05 4月, 2011 1 次提交
-
-
由 Eric Blake 提交于
Even with -Wuninitialized (which is part of autobuild.sh --enable-compile-warnings=error), gcc does NOT catch this use of an uninitialized variable: { if (cond) goto error; int a = 1; error: printf("%d", a); } which prints 0 (supposing the stack started life wiped) if cond was true. Clang will catch it, but we don't use clang as often. Using gcc -Wjump-misses-init catches it, but also gives false positives: { if (cond) goto error; int a = 1; return a; error: return 0; } Here, a was never used in the scope of the error block, so declaring it after goto is technically fine (and clang agrees). However, given that our HACKING already documents a preference to C89 decl-before-statement, the false positive warning is enough of a prod to comply with HACKING. [Personally, I'd _really_ rather use C99 decl-after-statement to minimize scope, but until gcc can efficiently and reliably catch scoping and uninitialized usage bugs, I'll settle with the compromise of enforcing a coding standard that happens to reject false positives if it can also detect real bugs.] * acinclude.m4 (LIBVIRT_COMPILE_WARNINGS): Add -Wjump-misses-init. * src/util/util.c (__virExec): Adjust offenders. * src/conf/domain_conf.c (virDomainTimerDefParseXML): Likewise. * src/remote/remote_driver.c (doRemoteOpen): Likewise. * src/phyp/phyp_driver.c (phypGetLparNAME, phypGetLparProfile) (phypGetVIOSFreeSCSIAdapter, phypVolumeGetKey) (phypGetStoragePoolDevice) (phypVolumeGetPhysicalVolumeByStoragePool) (phypVolumeGetPath): Likewise. * src/vbox/vbox_tmpl.c (vboxNetworkUndefineDestroy) (vboxNetworkCreate, vboxNetworkDumpXML) (vboxNetworkDefineCreateXML): Likewise. * src/xenapi/xenapi_driver.c (getCapsObject) (xenapiDomainDumpXML): Likewise. * src/xenapi/xenapi_utils.c (createVMRecordFromXml): Likewise. * src/security/security_selinux.c (SELinuxGenNewContext): Likewise. * src/qemu/qemu_command.c (qemuBuildCommandLine): Likewise. * src/qemu/qemu_hotplug.c (qemuDomainChangeEjectableMedia): Likewise. * src/qemu/qemu_process.c (qemuProcessWaitForMonitor): Likewise. * src/qemu/qemu_monitor_text.c (qemuMonitorTextGetPtyPaths): Likewise. * src/qemu/qemu_driver.c (qemudDomainShutdown) (qemudDomainBlockStats, qemudDomainMemoryPeek): Likewise. * src/storage/storage_backend_iscsi.c (virStorageBackendCreateIfaceIQN): Likewise. * src/node_device/node_device_udev.c (udevProcessPCI): Likewise.
-
- 22 3月, 2011 1 次提交
-
-
qemu:///session由 Eric Blake 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=684655 points out a regression introduced in commit 2215050e - non-root users can't connect to qemu:///session because libvirtd dies when it can't use pciaccess initialization. * src/node_device/node_device_udev.c (udevDeviceMonitorStartup): Don't abort udev driver (and libvirtd overall) if non-root user can't use pciaccess.
-
- 10 2月, 2011 3 次提交
-
-
由 Daniel P. Berrange 提交于
Most of te VIR_INFO calls in the udev driver are only relevant to developers so can switch to VIR_DEBUG. Failure to initialize libpciaccess though is a fatal error * src/node_device/node_device_udev.c: Adjust log levels
-
由 Daniel P. Berrange 提交于
The Linux kernel headers don't have a value for SCSI type 12, but HAL source code shows this to be a 'raid'. Add workaround for this type. Lower log level for unknown types since this is not a fatal error condition. Include the device sysfs path in the log output to allow identification of which device has problems. * src/node_device/node_device_udev.c: Add SCSI RAID type
-
由 Daniel P. Berrange 提交于
libpciaccess has many bugs in its pci_system_init/cleanup functions that makes calling them multiple times unwise. eg it will double close() FDs, and leak other FDs. * src/node_device/node_device_udev.c: Only initialize libpciaccess once
-
- 04 1月, 2011 1 次提交
-
-
由 Chris Wright 提交于
The udev driver does not update a PCI device with its SR-IOV capabilities, when applicable, the way the hal driver does. As a result, dumping the device's XML will not include the relevant physical or virtual function information. With this patch, the XML is correct: # virsh nodedev-dumpxml pci_0000_09_00_0 <device> <name>pci_0000_09_00_0</name> <parent>pci_0000_00_1c_0</parent> <driver> <name>vxge</name> </driver> <capability type='pci'> <domain>0</domain> <bus>9</bus> <slot>0</slot> <function>0</function> <product id='0x5833'>X3100 Series 10 Gigabit Ethernet PCIe</product> <vendor id='0x17d5'>Neterion Inc.</vendor> <capability type='virt_functions'> <address domain='0x0000' bus='0x0a' slot='0x00' function='0x1'/> <address domain='0x0000' bus='0x0a' slot='0x00' function='0x2'/> <address domain='0x0000' bus='0x0a' slot='0x00' function='0x3'/> </capability> </capability> </device> # virsh nodedev-dumpxml pci_0000_0a_00_1 <device> <name>pci_0000_0a_00_1</name> <parent>pci_0000_00_1c_0</parent> <driver> <name>vxge</name> </driver> <capability type='pci'> <domain>0</domain> <bus>10</bus> <slot>0</slot> <function>1</function> <product id='0x5833'>X3100 Series 10 Gigabit Ethernet PCIe</product> <vendor id='0x17d5'>Neterion Inc.</vendor> <capability type='phys_function'> <address domain='0x0000' bus='0x09' slot='0x00' function='0x0'/> </capability> </capability> </device> Cc: Dave Allan <dallan@redhat.com> Signed-off-by: NChris Wright <chrisw@redhat.com>
-
- 02 7月, 2010 1 次提交
-
-
由 Cole Robinson 提交于
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.
-
- 09 6月, 2010 1 次提交
-
-
由 David Allan 提交于
* This patch is a modification of a patch submitted by Nigel Jones. It fixes several memory leaks on device addition/removal: 1. Free the virNodeDeviceDefPtr in udevAddOneDevice if the return value is non-zero 2. Always release the node device reference after the device has been processed. * Refactored for better readability per the suggestion of clalance
-
- 29 5月, 2010 1 次提交
-
-
由 David Allan 提交于
* If a nodedev has a parent that we don't want to display, we should continue walking up the udev device tree to see if any of its earlier ancestors are devices that we display. It makes the tree much nicer looking than having a whole lot of devices hanging off the root node.
-
- 28 5月, 2010 1 次提交
-
-
由 David Allan 提交于
* Incorporated Jim's feedback (v1 & v2) * Moved case of DEVTYPE == "wlan" up as it's definitive that we have a network interface. * Made comment more detailed about the wired case to explain better how it differentiates between wired network interfaces and USB devices.
-
- 26 5月, 2010 1 次提交
-
-
由 Daniel P. Berrange 提交于
Allow for a host UUID in the capabilities XML. Local drivers will initialize this from the SMBIOS data. If a sanity check shows SMBIOS uuid is invalid, allow an override from the libvirtd.conf configuration file * daemon/libvirtd.c, daemon/libvirtd.conf: Support a host_uuid configuration option * docs/schemas/capability.rng: Add optional host uuid field * src/conf/capabilities.c, src/conf/capabilities.h: Include host UUID in XML * src/libvirt_private.syms: Export new uuid.h functions * src/lxc/lxc_conf.c, src/qemu/qemu_driver.c, src/uml/uml_conf.c: Set host UUID in capabilities * src/util/uuid.c, src/util/uuid.h: Support for host UUIDs * src/node_device/node_device_udev.c: Use the host UUID functions * tests/confdata/libvirtd.conf, tests/confdata/libvirtd.out: Add new host_uuid config option to test
-
- 21 5月, 2010 3 次提交
-
-
由 Jim Meyering 提交于
Handle concatenated strings manually.
-
由 Jim Meyering 提交于
Run this: git grep -l 'VIR_ERROR\s*("'|xargs perl -pi -e \ 's/(VIR_ERROR)\s*\((".*?"),/$1(_($2),/'
-
由 Jim Meyering 提交于
Run this: git grep -l 'VIR_ERROR0\s*("'|xargs perl -pi -e \ 's/(VIR_ERROR0)\s*\((".*?")\)/$1(_($2))/'
-
- 12 5月, 2010 1 次提交
-
-
由 Cole Robinson 提交于
Product and vendor values were swapped in the XML, which made virt-manager PCI device listing kinda useless.
-
- 29 4月, 2010 1 次提交
-
-
由 Chris Lalancette 提交于
We were over-writing a pointer without freeing it in case of a disk device, leading to a memory leak. Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
- 28 4月, 2010 1 次提交
-
-
由 Klaus Ethgen 提交于
Signed-off-by: NGuido Günther <agx@sigxcpu.org>
-
- 06 4月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
-
- 18 3月, 2010 1 次提交
-
-
由 Eric Blake 提交于
Spell out 'Red Hat, Inc.': git grep -i 'Copyright.*Red Hat' | grep -v Inc Include (C) consistently: git grep -i 'Copyright [^(].*Red Hat' * src/lxc/lxc_container.c: Update copyright formatting. * src/node_device/node_device_udev.c: Likewise. * src/node_device/node_device_udev.h: Likewise. * src/xen/xend_internal.h: Likewise. * src/xen/xm_internal.c: Likewise. * src/xen/xm_internal.h: Likewise. * tests/xmconfigtest.c: Likewise. * tests/object-locking.ml: Likewise. * tools/virt-pki-validate.in: Likewise. * tools/virt-xml-validate.in: Likewise.
-
- 11 3月, 2010 2 次提交
-
-
由 Ed Swierk 提交于
* Allow devices without parent links to be created and set their parent to the root "computer" node
-
由 David Allan 提交于
* The udev driver didn't properly free resources that it allocates when setting up the 'computer' device in the error case.
-
- 01 3月, 2010 1 次提交
-
-
由 Jim Meyering 提交于
* src/node_device/node_device_udev.c (udevEnumerateDevices): Remove unnecessary call to udev_list_entry_get_name.
-
- 10 2月, 2010 1 次提交
-
-
由 Daniel P. Berrange 提交于
The virConnectPtr is no longer required for error reporting since that is recorded in a thread local. Remove use of virConnectPtr from all APIs in node_device_conf.{h,c} and update all callers to match
-
- 09 2月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
-
- 03 2月, 2010 1 次提交
-
-
由 David Allan 提交于
The original udev node device backend neglected to lock the driverState struct containing the device list when adding and removing devices * src/node_device/node_device_udev.c: add necessary locks in udevRemoveOneDevice() and udevAddOneDevice()
-
- 02 2月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
udevGetUintProperty was called with base set to 0 for busnum and devnum. With base 0 strtoul parses the number as octal if it start with a 0. But busnum and devnum are decimal and udev returns them padded with leading zeros. So strtoul parses them as octal. This works for certain decimal values like 001-007, but fails for values like 008. Change udevProcessUSBDevice to use base 10 for busnum and devnum.
-
- 27 1月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
-
由 Matthias Bolte 提交于
This fixes a segfault when the event handler is called after shutdown when the global driver state is NULL again. Also fix a locking issue in an error path.
-
- 21 1月, 2010 1 次提交
-
-
由 Daniel Veillard 提交于
* src/node_device/node_device_udev.c: udevSetupSystemDev() only print the error message if lookup failed in both DMI_DEVPATH and DMI_DEVPATH_FALLBACK
-
- 20 1月, 2010 1 次提交
-
-
由 Jiri Denemark 提交于
I noticed some debug messages are printed with an empty lines after them. This patch removes these empty lines from all invocations of the following macros: VIR_DEBUG VIR_DEBUG0 VIR_ERROR VIR_ERROR0 VIR_INFO VIR_WARN VIR_WARN0 Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
-
- 13 1月, 2010 3 次提交
-
-
由 Cole Robinson 提交于
We are setting the same property two different ways without free'ing in between. Just drop the second assignment.
-
由 Cole Robinson 提交于
There are quite a few differences between how udev exposes legacy and USB floppy devs, but this patch takes care of both variants.
-
由 Cole Robinson 提交于
udev doesn't prefix USB product/vendor info with '0x', so the strtol conversions were wrong for the product field (vendor already set the correct base). Make the change for PCI product/vendor as well to be safe. This fixes USB device assignment via virt-manager.
-
- 11 1月, 2010 1 次提交
-
-
由 Guido Günther 提交于
older kernels such as 2.6.26 have it there.
-
- 14 12月, 2009 2 次提交
-
-
由 Jiri Denemark 提交于
src/node_device/node_device_udev.c was using a function available only on the daemon code, fix this and use the function available globally * src/node_device/node_device_udev.c: replace use of virEventAddHandleImpl by virEventAddHandle
-
由 Cole Robinson 提交于
Provides the CDROM label for current media. Only implemented for the udev backend.
-
- 10 12月, 2009 1 次提交
-
-
由 Matthias Bolte 提交于
Replace free(virBufferContentAndReset()) with virBufferFreeAndReset(). Update documentation and replace all remaining calls to free() with calls to VIR_FREE(). Also add missing calls to virBufferFreeAndReset() and virReportOOMError() in OOM error cases.
-
- 08 12月, 2009 1 次提交
-
-
由 Guido Günther 提交于
Fix crash on strdup in that case.
-